无法找到没有ID sidekiq错误的帖子

时间:2013-08-17 22:50:09

标签: ruby-on-rails sidekiq

我无法弄清楚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甚至可以尝试发帖,因为我甚至没有在执行方法中调用它。可能会发生什么想法?

感谢任何帮助。

2 个答案:

答案 0 :(得分:1)

您可能需要查看this博文。

  

这听起来很荒谬,但是Sidekiq是如此之快以至于它可以运行你的   你的模特甚至完成储蓄之前的工人。

答案 1 :(得分:0)

也很奇怪,我可以发誓我重新启动了Rails / sidekiq。

但我将工作人员重命名为TagWorker,重新启动了Rails / sidekiq并重新开始工作!