假设我想在每天两次之间每隔x分钟跑一次耙?我该怎么做?工作之间会吗?或者直到?或者我必须使用cron语法?
# Refresh daily scores
every 5.minutes, # :between '3pm' :and '1am' do ?
rake "games:scores_refresh"
end发布于 2015-07-15 03:32:22
一种简单的cron方法,应该起作用:
every '*/5 15-23,0 * * *' do
rake "games:scores_refresh"
end每五分钟运行一次耙作业,从下午3点到11点,从午夜开始,每小时运行一次。
发布于 2015-07-15 02:49:02
我认为中间选项是不可用的,但是您可以传递确切的时间或日期等等,语法可以在这里作为示例使用:
https://github.com/javan/whenever
对于你的任务来说,你可以传递一系列的时间:
every :day, :at => (1..15).to_a.map{ |x| (0..55).step(5).to_a.map{ |a| ["#{x}:#{a}"] } }.flatten do
# Run rake task.
end
# => ["1:0", "1:5", "1:10", "1:15", "1:20", "1:25", "1:30", "1:35", "1:40", "1:45", "1:50", "1:55", "2:0", "2:5", "2:10", "2:15", "2:20", "2:25", "2:30", "2:35", "2:40", "2:45", "2:50", "2:55", "3:0", "3:5", "3:10", "3:15", "3:20", "3:25", "3:30", "3:35", "3:40", "3:45", "3:50", "3:55", "4:0", "4:5", "4:10", "4:15", "4:20", "4:25", "4:30", "4:35", "4:40", "4:45", "4:50"...]这只是一个例子。你可以随心所欲地做。我不确定whenever是否接受24小时格式的时间。所以请检查一下,像这样试一试。
更新1:
做了更多的研发,并发现上面的问题解决了创业板创作者所指出的问题。以下是链接:
https://github.com/javan/whenever/issues/506
不知道rjust,可以在上面添加。关于AM和PM,我认为您需要添加(不确定)。如果需要添加,就把它分成两部分。一个是AM,另一个是PM
更新2:
我找到的另一个简单的解决办法是:
every '*/30 6-9 * * *' do
runner "Model.method"
end在6到9之间,每隔30分钟运行一次。
来源:
Rails Execute Cron Job or Rake task for specific time period
希望这能有所帮助。
https://stackoverflow.com/questions/31420365
复制相似问题