当我运行我的rake任务时:
namespace :foo do
task :bar => :environment do
MyWorker.perform_async(some_id)
end
end
我收到此错误:
{"retry"=>3, "queue"=>"default", "class"=>"MyWorker", "args"=>[3], "jid"=>"05737ccbac2c88443e3014c4", "enqueued_at"=>1392842821.15404, "error_message"=>"wrong number of arguments (1 for 0)", "error_class"=>"ArgumentError", "failed_at"=>2014-02-19 20:47:01 UTC, "retry_count"=>0}
现在,奇怪的是,如果我只是在我的rails控制台上运行部件MyWorker.perform_async(some_id)
,它就可以完美运行
MyWorker.perform就像:
def perform some_id
MyModel.new(some_id).sync
end
有什么想法吗?
答案 0 :(得分:0)
如果你的perform方法接受some_id参数,那么我很可能是MyModel
。 MyModel
的初始化方法是什么样的?
它也可能是rails的错误:https://github.com/mperham/sidekiq/issues/601