【发布时间】:2026-02-14 02:50:01
【问题描述】:
我实施了延迟作业,它处理得很好,但它在 development.log 中而不是在 production.log 中生成邮件。
实际上也没有发送邮件,它只是在开发日志中生成。处理后,我在延迟作业表中也没有作业。
我也使用了RAILS_ENV=production rake jobs:work,但邮件仍在开发日志中,实际上并未发送;我在 Ubuntu 上使用邮件服务器发送邮件。
我注意到rake jobs:work默认使用开发日志不知道生产服务器是否也一样?
如果有人知道这个问题,请尽快回答,因为我的应用程序因此在生产服务器上卡住了,很多邮件只是进入开发日志,实际上并没有发送给最终用户。
【问题讨论】:
-
在文件
config/initializers/delayed_job.rb中添加Delayed::Worker.destroy_failed_jobs = false并重新启动应用程序/服务器。设置不会删除任何有错误的作业,这可能有助于缩小问题的范围。查找有错误的工作:select id,last_error from delayed_jobs where last_error is not null;。您不应该在生产中使用rake jobs:work。最好为它制作一个监控文件。 -
我正在使用 RAILS_ENV=production rake jobs:work 但在此之后邮件仅在开发日志中,但实际上它们并未发送给接收者