调用类方法延迟会显示以下错误:
class Foo
def self.bar
puts "hello"
end
end
Foo.delay.bar
显示以下错误
{"retry"=>true, "queue"=>"default", "class"=>"Sidekiq::Extensions::DelayedClass",
"args"=>["---\n- !ruby/class 'Foo'\n- :bar\n- []\n"], "jid"=>"0000000",
"enqueued_at"=>1391440659.34402, "error_message"=>"undefined class/module Foo",
"error_class"=>"ArgumentError", "failed_at"=>2014-02-03 15:17:39 UTC,
"retry_count"=>0}
知道为什么吗? 我们可以调用类方法的延迟吗?
答案 0 :(得分:1)
重新启动sidekiq和redis服务器。 为我工作。
答案 1 :(得分:1)
我遇到了同样的问题,重新启动redis和sidekiq都没有工作。
我知道这很奇怪,但似乎sidekiq并没有很好地加载所有东西,无论如何,修复是使用专职工作人员而不是延迟课程。
我希望它有所帮助。 https://github.com/mperham/sidekiq/wiki/Getting-Started
答案 2 :(得分:0)
它告诉你原因:undefined class/module Foo
Sidekiq没有看到你的Foo
课程。确保Sidekiq加载在可以看到Foo
。