今天airbrake报告了一个异常。它的摘要说,当 sidekiq 在失败后尝试重试作业时会出现问题。以下是摘要参数的样子:
{
"retry"=>"true",
"queue"=>"default",
"class"=>"AdwordsReportWorker",
"args"=>"[\"2\", \"2012-11-13\"]",
"jid"=>"51d568e46c412adc327153c8",
"error_message"=>"wrong number of arguments(1 for 0)",
"error_class"=>"ArgumentError",
"failed_at"=>"2012-11-14 13:56:12 UTC",
"retry_count"=>"0",
"controller"=>"",
"action"=>""
}
我似乎只有在作业失败并重试时才会出现异常。我想调试这个,但我不知道从哪里开始:-(
我的问题是:
- 工人在什么情况下理解它未能完成工作(他决定重试)?我如何迫使工人失败以试图重现问题?
- 是否有关于调试/示例 sidekiq 工作人员的好教程?
- 我正在使用sidekiq 2.3.3。升级到新版本会解决问题吗?
奖金轨道。实际的堆栈跟踪意外地以
[GEM_ROOT]/gems/activerecord-3.2.8/lib/active_record/associations/association.rb:98:in `initialize'