Sidekiq不接受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

有什么想法吗?

如果你的 execute 方法正在接受 some_id 参数,那么我很可能是MyModelMyModel的初始化方法是什么样的?

它也可能是轨道的错误:https://github.com/mperham/sidekiq/issues/601

最新更新