Sidekiq不接受Rake任务参数

时间:2014-02-19 20:59:14

标签: ruby-on-rails rake 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

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

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

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