2011-09-14 218 views
0

我有一個相同的任務,我想運行兩次 - 一個30分鐘後,一個120分鐘後。延遲作業語法

我現在正在寫這樣說,但我相信周圍有一個更好的方式,它

def postpone_30_min 
    // same task 
    end 
    handle_asynchronously :postpone_30_min, :run_at => Proc.new { 30.minutes.from_now } 


    def postpone_120_min 
    // same task 
    end 
    handle_asynchronously :postpone_120_min, :run_at => Proc.new { 1200.minutes.from_now } 

回答

4

試試這個(假設你使用的是最新版本的DJ):

class Foo 
    after_create :schedule_reminder  

    def send_reminder 
    end 

private: 

    def schedule_reminder 
    delay(:run_at => 30.minutes.from_now).send_reminder 
    delay(:run_at => 2.hours.from_now).send_reminder 
    end  
end 
+0

你知道如何處理handle_asyn ...行嗎? – baash05