【发布时间】:2013-10-25 21:25:59
【问题描述】:
我需要一个 cron 作业来写入我的 crontab,每隔一分钟调用一个触发方法并运行计划作业的 rails 应用程序的 URL。
我没有在任何时候使用 gem,因为它会重新启动环境,我认为它会给我的应用程序带来压力。所以我更喜欢独立于 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 也不难。
-
@铁皮人,我写过一篇但我没有经验。它看起来像答案中的那个,我想它有效。
标签: ruby-on-rails ruby curl cron