2014-09-05 78 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