0

我需要一个 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
4

2 回答 2

3

虽然还有其他方法可以做到这一点,但 cron 看起来像:

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

其他方式之一可能是rufus-scheduler

于 2013-10-25T21:42:35.710 回答
0

看起来你正在使用 Sidekiq。将 Sidetiq 用于重复性任务。https://github.com/tobiassvn/sidetiq

于 2013-10-26T16:58:01.343 回答