我有一個用於在不同數據集上執行計算的標準系統。最好的是我可以將這些計算作爲Proc傳遞給執行方法。這是我想要實現的:是否可以將Blocks或Procs作爲參數發送到Sidekiq?
class Calculator
include Sidekiq::Worker
def perform rails_model , rails_model_id
obj = Kernel.const_get(rails_model).find(rails_model_id)
yield(obj)
end
end
Calculator.perform_asyc("User" , 123 , { |u| u.do_something })
這種事情是可能的還是不好的做法?我知道直接發送對象是不好的做法,所以我假設發送塊也是一個壞主意?
我不知道,如果你能做到這一點或沒有,但而不是使用內核模塊,你爲什麼不: 'rails_model.constantize.find(rails_model_id)' 我希望傳遞塊不應該是Sidekiq的問題。 –
Sidekiq在獨立機器上的單獨進程中運行代碼。傳遞塊會有問題。 – yfeldblum