我使用延迟作业 gem 来处理我的电子邮件传递。它在开发中运行良好,我对此感到非常满意。但是,在我部署到服务器后,当我使用命令时:
RAILS_ENV=production script/delayed_job start
它会起作用的。我检查了日志文件和数据库,一切都很好,我可以按预期接收邮件。但是,当我从服务器退出时,什么都不会发生。
我使用 sequel pro 检查了我的数据库,发现延迟的作业在数据库中创建了一行,并且在 run_at 列中的时间之后,该行将消失,但无法接收邮件。当我再次登录时,延迟的作业进程仍在运行,日志没有什么奇怪的,但我只是无法接收我想的电子邮件。我不能一直保持我的自我登录。没有延迟的工作,我可以使用传统的方式,它工作正常但速度慢。为什么我退出服务器后延迟作业失败?
这是我在 config/initializers/delay_job.rb 中的延迟作业设置
require "bcrypt"
Delayed::Worker.max_attempts = 5
Delayed::Worker.delay_jobs = !Rails.env.test?
Delayed::Worker.destroy_failed_jobs = false
PS我不确定这与独立乘客有什么关系,因为我必须使用不同版本的导轨,所以我必须使用端口 3002 的独立乘客。