我无法弄清楚 sidekiq 发生了什么。我本可以发誓昨天这行得通,但我一定是在做梦。
这是我的工人阶级:
class TagPostWorker
include Sidekiq::Worker
sidekiq_options queue: "tag"
sidekiq_options retry: false
def perform(options = {})
current_user = User.find(options[:user_id])
end
end
我尝试在 Post 中的 show 方法上运行此命令:
TagPostWorker.perform_async({:user_id => current_user.id})
但我得到这个错误:
2013-08-17T22:45:45Z 4029 TID-ors6jfr54 TagPostWorker JID-ae203958bb3bcee01c8f83ef INFO: start
2013-08-17T22:45:45Z 4029 TID-ors6jfr54 TagPostWorker JID-ae203958bb3bcee01c8f83ef INFO: fail: 0.003 sec
2013-08-17T22:45:45Z 4029 TID-ors6jfr54 WARN: {"retry"=>false, "queue"=>"tag", "class"=>"TagPostWorker", "args"=>[{"user_id"=>7}], "jid"=>"ae203958bb3bcee01c8f83ef", "enqueued_at"=>1376779545.9099338}
2013-08-17T22:45:45Z 4029 TID-ors6jfr54 WARN: Couldn't find Post without an ID
我不明白 sidekiq 是如何尝试发布的,因为我什至没有在 perform 方法中调用它。任何想法可能会发生什么?
任何帮助表示赞赏。