首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Rails何时gem:将任务安排在两次之间?

Rails何时gem:将任务安排在两次之间?
EN

Stack Overflow用户
提问于 2015-07-15 02:12:07
回答 2查看 3K关注 0票数 3

假设我想在每天两次之间每隔x分钟跑一次耙?我该怎么做?工作之间会吗?或者直到?或者我必须使用cron语法?

代码语言:javascript
复制
# Refresh daily scores
every 5.minutes, # :between '3pm' :and '1am' do ?
  rake "games:scores_refresh"
end
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-07-15 03:32:22

一种简单的cron方法,应该起作用:

代码语言:javascript
复制
every '*/5 15-23,0 * * *' do
  rake "games:scores_refresh"
end

每五分钟运行一次耙作业,从下午3点到11点,从午夜开始,每小时运行一次。

票数 3
EN

Stack Overflow用户

发布于 2015-07-15 02:49:02

我认为中间选项是不可用的,但是您可以传递确切的时间或日期等等,语法可以在这里作为示例使用:

https://github.com/javan/whenever

对于你的任务来说,你可以传递一系列的时间:

代码语言:javascript
复制
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:

我找到的另一个简单的解决办法是:

代码语言:javascript
复制
every '*/30 6-9 * * *' do
  runner "Model.method"
end

在6到9之间,每隔30分钟运行一次。

来源:

Rails Execute Cron Job or Rake task for specific time period

希望这能有所帮助。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31420365

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档