2014-01-24 70 views
0

我是新來的遲到工作。我正在嘗試配置延遲作業來發送電子郵件。在我的模型我有...使用入門:在延期工作的Rails中發送電子郵件發送電子郵件

def send_reminder_emails 
    NsoMailer.send_reminder_emails(self) 
    end 

我在app /郵寄/ nso_mailer.rb適當send_reminder_emails行動,並在註冊/ reminder_email.html.erb測試的電子郵件。

我按照https://github.com/collectiveidea/delayed_job的指示安裝延遲作業和守護進程的寶石。現在我的問題是如何配置工作?在這種情況下,我認爲這項工作應該是Delayed :: Job.enqueue Registrations.send_email_reminders ??? github wiki上的文檔似乎有點缺乏。我知道有腳本/ delayed_job文件。我應該修改這個文件嗎?

如果任何人都可以建議入門頁面或博客,這將是很好的。我在我自己的服務器上運行(不需要heroku),也有我們自己的SMTP服務器(所以沒有sendgrid或第三方郵件服務)。郵件已在服務器上配置,並且我正在成功發送電子郵件。我的delayed_job目標是每天發送一次提醒電子郵件。

任何幫助或推動正確的方向非常讚賞。

回答

0

如果你想調用的方法對你的模型異步那麼你可以做到以下幾點:

model_instance.delay.send_reminder_email 

如果你想打電話的郵件的方法直接那麼你會做這樣的事情(我」中號假設在nso_mailer.rb定義的方法名是reminder_emails):

NsoMailer.delay.reminder_emails(model_instance) 

在我的項目,我通常有兩種服務對象採取的所有通知護理或創建用來處理電子郵件的發送問題。

一個很好的資源,看看是瑞安貝茨Railcast題爲「服務對象」或閱讀DHH的博客文章上使用的擔憂Put chubby models on a diet with concerns

至於你的設置問題,如果你是通過Capistrano的部署,那麼你可以調用後bundle exec bin/delayed_job restart部署成功以重新啓動DJ守護進程。