1

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

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 ..
4

2 回答 2

2

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

>> failed_jobs = Delayed::Job.where('attempts > 0')
>> failed_jobs.first.last_error
于 2013-03-05T08:03:30.623 回答
1

调试 DelayedJob 的另一种好方法是 gem Delayed Job Web(请参阅https://github.com/ejschmitt/delayed_job_web),它为您提供“延迟作业的类似 Resque 的 Web 界面”,可通过http://localhost:3000/delayed_job. 界面提供了一个“Failed Jobs”-Tab,在这里可以调查“最后一个错误”-Field,比在终端更方便...

于 2013-11-16T21:23:15.280 回答