我需要一個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
你試過了什麼?編寫一個cron作業並不難,用cURL或wget等工具編寫URL也不難。 –
@錫文,我寫了一篇,但我沒有經驗。它看起來像答案中的一個,我想它是有效的。 – acacia