2014-09-05 67 views
0

我正在使用rails 2应用程序,我需要在后台作业中发送邮件。
我有Notifier模型和控制器我调用模型方法发送邮件。
我称之为方法Notifier.deliver_method_name(params)在使用延迟作业之前和创建之后我使用它Notifier.delay.deliver_method_name(params)Rails 2 Delayed_job gem

现在我的问题出现

1)我是否需要启动耙作业:工作发送邮件的背景中发展,如果是我应该运行每次启动服务器时呢?
2)我应该在生产上做些什么来运行耙子作业:第一次工作?
3)这是正确的,如果发生任何错误,那么只有在延迟作业中有条目,如果它是成功的,那么在delayed_job表中没有条目。

我按照下面的链接

https://github.com/collectiveidea/delayed_job/tree/v2.0

谢谢:)

回答

0

1)我是否需要启动耙作业:工作发送邮件的背景中发展,如果是我应该运行它每次启动服务器?

是的,你必须单独开始耙子任务。

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)什么我需要做的生产,我应该运行耙作业:工作是第一次?

是的,你必须与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 
+0

对于第二个问题,我需要运行RAILS_ENV =生产脚本/ delayed_job的启动或耙作业:工作如果两者哪一个先? – 2014-09-05 10:52:58

+0

对于第三种情况,initializers文件夹中没有delayed_job_config.rb文件,那么会发生什么情况? 建议手动创建该文件? – 2014-09-05 10:56:20

+0

两者都可以使用,但是我使用了'RAILS_ENV =生产脚本/ delayed_job start' – 2014-09-05 10:56:51