我正在使用rails 2应用程序,我需要在后台工作中发送邮件 我有Notifier模型,从控制器我调用模型方法发送邮件 我在使用延迟作业之前将该方法称为 Notifier.deliver_method_name(params),在创建之后我使用 Notifier.delay.deliver_method_name(params)。
现在我的问题出现了
1)我是否需要启动rake作业:在开发后工作以后台发送邮件,如果是,我应该在每次启动服务器时运行它吗?
2)如果我开展佣金工作,我需要做什么?第一次工作?
3)如果发生任何错误,那是正确的,只有在延迟作业中有条目,如果成功,则在delayed_job表中没有条目。
我按照以下链接
https://github.com/collectiveidea/delayed_job/tree/v2.0
谢谢:)
答案 0 :(得分:0)
1)我是否需要启动rake作业:开发后台发送邮件,如果是,我应该每次启动服务器时运行它吗?
是的,你必须单独开始rake任务。
Workers can be running on any computer, as long as they have access to the database and their clock is in sync. Keep in mind that each worker will check the database at least every 5 seconds.
2)我应该在生产中做什么才能运行rake工作:第一次工作?
是的,您必须使用RAILS_ENV=production script/delayed_job start
但我建议您在每次部署时停止并启动此操作以完成更改。
3)如果发生任何错误,那是正确的吗?只有在延迟作业中有条目,如果成功,则在delayed_job表中没有条目。
不,这完全取决于您的配置
# config/initializers/delayed_job_config.rb
Delayed::Worker.destroy_failed_jobs = false
Delayed::Worker.sleep_delay = 60
Delayed::Worker.max_attempts = 3
Delayed::Worker.max_run_time = 5.minutes