2012-05-02 29 views
0

運行我意識到這個稱號了一口......Heroku的delayed_job的時候通過rufus_scheduler

我的應用程序是目前設置每天發送電子郵件向所有用戶已有的帳戶活動開火兩次。爲了實現這一目標,我貫穿rufus_scheduler一個cron任務,並使用delayed_job的這看起來是這樣的延誤電子郵件傳送:

scheduler.cron("0 12 * * *") do 
    User.all.each do |user| 
    Newideas.delay.newideas_email(user) 
    end 
end 

遺憾的是,似乎使用這種組合(rufus_scheduler & delayed_job的)是在Heroku上部署時,會將電子郵件分發給每個用戶兩次。

我試圖複製這個在開發中,但我一直無法。此外,當我使用控制器方法觸發delayed_job時,問題不會發生 - 即當有人創建新帳戶等。

任何幫助排序這將不勝感激。

非常感謝。

回答

1

爲什麼不使用Heroku調度程序並通過它調用它?它生成一個單獨的進程,所以那時就沒有必要在那裏使用的delayed_job,以及... :)簡化

+0

我在調度程序中使用延遲作業,因爲某些任務需要很長時間才能執行,所以如果沒有delayed_job,它們會超時。此外,我會使用Heroku調度程序,但是當我們第一次構建應用程序時,只有Cron可用,這並不足以讓我們使用它。我現在將所有內容切換到Heroku Scheduler,看看是否可以解決問題 - 參考這也是Heroku支持建議我做的。謝謝! –

0

也許這樣做的原因很簡單,你叫scheduler.cronconfig/initializer/what_ever 文件等調度運行在rails進程中以及在delayed_job進程中?

This可能是對這個問題的簡單回答。