延迟作业不发送邮件 - 如何调试?

时间:2013-03-05 06:11:31

标签: ruby-on-rails actionmailer delayed-job

我使用以下设置延迟了作业设置:

Delayed::Worker.max_attempts = 3
Delayed::Worker.delay_jobs = !Rails.env.test?
Delayed::Worker.destroy_failed_jobs = false
Delayed::Worker.sleep_delay = 120

我已经启动了一名工作人员,他正在开发中并已配置ActionMailer来发送邮件。

我也在控制器中使用以下内容来调用它:

OrderMailer.delay.order_notification(@order)

我可以看到在Mongo中创建的作业,它们在控制台中没有显示任何错误,如何查明是否有任何错误?有某种工作日志吗?

我在控制台中获得以下内容:

1 jobs processed at 3.6244 j/s, 0 failed ..

2 个答案:

答案 0 :(得分:2)

应该有log/delayed_job.log列出处理的作业。您还可以使用数据库访问失败任务的错误。

>> failed_jobs = Delayed::Job.where('attempts > 0')
>> failed_jobs.first.last_error

答案 1 :(得分:0)

调试DelayedJob的另一个好方法是gem 延迟作业网(请参阅https://github.com/ejschmitt/delayed_job_web),它为您提供了“ Resque like web interface for delayed job “,可通过http://localhost:3000/delayed_job访问。界面提供了“失败的工作”-Tab,您可以在其中调查“最后一个错误” - 比终端更方便...