Ruby on rails Heroku:cron如何处理一系列小时?
我在Heroku上有一个cron作业,每天需要运行8小时。(一小时一次,每天八次。) 这些确实如预期的那样起作用: (所有代码位于/lib/tasks/cron.rake中)Ruby on rails Heroku:cron如何处理一系列小时?,ruby-on-rails,cron,heroku,Ruby On Rails,Cron,Heroku,我在Heroku上有一个cron作业,每天需要运行8小时。(一小时一次,每天八次。) 这些确实如预期的那样起作用: (所有代码位于/lib/tasks/cron.rake中) 但是,此代码不起作用: if Time.now.hour (6..14) puts "I did the rake job" end 我还尝试了以下变体。没用。 如果Time.now.hour==(6..14) 如果Time.now.hour=(6..14) 如果Time.now.hour==6..14 如果Tim
但是,此代码不起作用:
if Time.now.hour (6..14)
puts "I did the rake job"
end
我还尝试了以下变体。没用。
如果Time.now.hour==(6..14)
如果Time.now.hour=(6..14)
如果Time.now.hour==6..14
如果Time.now.hour=6..14
有人知道我如何在Heroku cron的工作中设置范围吗?按小时列出大量工作似乎是错误的。你想要的是
if (6..14) === Time.now.hour
# Run command
end
你想要的是
if (6..14) === Time.now.hour
# Run command
end
您希望查看该范围是否包括小时:
if (6..14).include?(Time.now.hour)
puts "I did the rake job"
end
您希望查看该范围是否包括小时:
if (6..14).include?(Time.now.hour)
puts "I did the rake job"
end
需要明确的是:这是因为
Time.now.hour==(6..14)
检查当前小时是否等于某个范围,这永远不会是真的。但是,range对象有一个名为==
的特殊方法,在本例中,该方法不是相等检查,而是包含检查。需要明确的是:这是有效的,因为Time.now.hour==(6..14)
检查当前小时是否等于某个范围,这永远不会为真。但是,range对象有一个名为==
的特殊方法,在本例中,该方法不是相等检查,而是包含检查。虽然我+1两者都有,但我更喜欢这种语法,因为第一眼就可以理解。虽然我+1两者都有,与==
相比,我更喜欢这种语法,因为第一眼就能理解它。