2012-04-21 43 views
0

我性學習的cron作業和延遲的工作,所以我想用後臺作業發送郵件和我使用的delayed_job我不不想被賦予耙作業手動啓動工作:工作命令但要將此耙在cron作業,以便當過用戶登錄到儀表板這個命令是火和郵件發送給他的地址,下面是我的代碼
方法發送郵件每當+與cron作業的delayed_job在開始工人

def dashboard  
     @user = User.find(params[:id])  
     UserMailer.delay.initial_email(@user)  
end  

UserMailer

def initial_email(user)  
     @user = user  
     mail(:to => user.email,:subject => "Welcome to my website!")  
    end  

對於cron作業我使用「只要」寶石所以我應該在我的shedule.rb寫入文件,這樣,當我登錄到儀表板,我得到的郵件,而無需手動運行的工作。
請幫幫我。
謝謝。

回答

0

DelayedJob應該一直在後臺運行,所以不需要啓動。 工作代理檢查隊列以查看是否需要執行任何任務,並運行它們。 這幾乎就像您的應用程序的第二個實例在後臺運行,用於檢查需要運行的任務。

所以,你應該用script/delayed_job start啓動工作代理,並讓它運行所有的時間。您可以使用獨立工具(如monit或god)來監視您的工作代理,以確保它始終處於運行狀態。

+0

感謝這些信息,所以如果我啓動worker然後關閉應用程序worker仍然運行?或者我需要再次啓動員工? 我基本需要的是當用戶登錄他的儀表板郵件應發送如果你建議我任何代碼,那麼你是最受歡迎的或任何更改以前的代碼也對我來說很好......併爲這些基本問題感到抱歉。 – 2012-04-26 05:18:44