我无法弄清楚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甚至可以尝试发帖,因为我甚至没有在执行方法中调用它。可能会发生什么想法?
感谢任何帮助。
答案 0 :(得分:1)
您可能需要查看this博文。
这听起来很荒谬,但是Sidekiq是如此之快以至于它可以运行你的 你的模特甚至完成储蓄之前的工人。
答案 1 :(得分:0)
也很奇怪,我可以发誓我重新启动了Rails / sidekiq。
但我将工作人员重命名为TagWorker,重新启动了Rails / sidekiq并重新开始工作!