【发布时间】:2017-11-22 21:50:54
【问题描述】:
我已安排 rufus cron 每小时运行一个方法(一种在远程数据库中发布复杂查询、检索结果并进行一些处理的方法),并且该方法在 99% 的时间内完成执行
Rufus 在每个预期时间都很好地触发了该方法,但问题是有时(1% fo time)该方法不会在一小时内完成;调度程序在预期时间触发第二个,并在上一次运行完成后再次触发第二个。
例如,
pin_sampling_job_scheduler = Rufus::Scheduler.new
pin_sampling_job_scheduler.cron("22 * * * *") do
puts "sampling starts"
DatafetchRedshift.pin_sampling_job
end
对于小时 = 00,方法在第 22 分钟触发(如预期的那样,假设作业运行了 1.5 小时)对于小时 =01,方法在第 22 分钟触发,然后在第 52 分钟触发(完成第一次运行后) .为什么会这样?任何帮助或建议将不胜感激。
鲁弗斯版本-3.3.4 导轨 - 4.1.6 Ruby 2.2.0
P.S - 我无法将调度程序的运行时间更改为超过一个小时,因为它已完成 99%
【问题讨论】:
标签: ruby-on-rails ruby ruby-on-rails-4 scheduling rufus-scheduler