我需要一个 cron 作业来写入我的 crontab,每隔一分钟调用一个触发方法并运行计划作业的 rails 应用程序的 URL。
我没有使用 gem,因为它会重新启动环境,我认为它会给我的应用程序带来压力。所以我更喜欢独立于 rails 应用程序运行完整的系统 cron 作业。
要调用的 URLhttps://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