2012-02-29 93 views
1

我們在Heroku中部署了一個應用程序(Rails 3)。 要發送電子郵件摘要給接近500個用戶,我們正在使用delayed_job。Heroku:多次延遲發送電子郵件的作業

Notifier.delay.send_email_digest(digest_content, @user) 

我的應用程序有3個網頁dynos和2個工人dynos。 儘管該任務僅在本地發送每個用戶的一個電子郵件摘要, 在heroku(製作)中,它爲一些用戶發送兩個電子郵件摘要(奇怪)。

它是由於兩個工人dynos(但爲什麼??或僅僅是巧合)。 任何人都可以幫我解決問題嗎?

謝謝。

+0

當你只有一名工人時,你有問題嗎? – 2012-02-29 18:08:48

+0

@Neil Middleton我們需要兩名工作人員來完成一些其他的背景工作。那麼,你能幫我弄清楚它出錯的地方嗎? – asitmoharna 2012-03-01 05:19:46

+0

我的猜測是,每個工作人員都會找到一份工作,然後再將這份工作工作兩次。 – 2012-03-01 13:47:05

回答

5

在您的send_email_digest方法中,您是否調用了交付?延遲作業在發送電子郵件時使用一些魔力,它會自動爲您送達。如果你打電話給自己,它會發送多次。我有時會發生這種情況。

+0

是的,我也找到了。在自述文件中提到:https://github.com/collectiveidea/delayed_job#rails-3-mailer – 2014-12-27 02:28:42