2013-10-25 57 views
0

我需要一個cron作業來寫入我的crontab,每隔一分鐘後調用一個rails應用程序的URL,以觸發方法並運行預定作業。Cron作業,每1分鐘調用一次rails應用程序的url

我沒有使用每當寶石,因爲它重新啓動環境,我認爲它會拉傷我的應用程序。所以我更喜歡獨立於Rails應用程序運行完整的系統cron作業。

要調用的URL是https://xxxxxxxxx.com/scheduled_messages,最好使用curl來調用。

被調用的控制器是;

class SchedulesController < ActionController::Base 
    def scheduled_messages 
    Schedule.scheduled_jobs 
    render nothing: true   
    end 
end 

和方法Schedule.scheduled_jobs在這裏;

def self.scheduled_jobs 
    jobs = Schedule.where('execution_time <= ?', Time.now) 
    if !jobs.empty? 
     jobs.each do |job| 
     task = Schedule.find(job) 
     MessageWorker.perform_async(task.message_id, task.lists, task.user_id) 
     task.destroy 
     end 
     end 
end 
+0

你試過了什麼?編寫一個cron作業並不難,用cURL或wget等工具編寫URL也不難。 –

+0

@錫文,我寫了一篇,但我沒有經驗。它看起來像答案中的一個,我想它是有效的。 – acacia

回答

3

雖然有其他方法可以做到這一點,cron將會是這樣的:

* * * * * /usr/bin/curl "https://xxxxxxxxx.com/scheduled_messages"

其中一種方式可能是rufus-scheduler

+0

rufus-scheduler是行爲不端,我以爲我可以按我的方式。 – acacia

相關問題