我有一个rake任务,每当使用gem时每小时启动一次。我想在登台服务器上禁用它,但使用if
语句解决此问题的明显方法并不能以某种方式工作。我的代码是:
namespace :checks do
task test_visible_response: :environment do
if Rails.env.production?
...
end
end
end
我按照这样执行:
every "0 7-21/1 * * *" do
rake 'checks:test_visible_response'
end
PS:我的cron语法似乎也有问题。我希望从7:00到21:59每小时执行一次任务,但它可以全天候工作。
答案 0 :(得分:1)
您可以使用schedule.rb
变量
@environment
中的环境
every "10 7-21 * * *" do
rake 'checks:test_visible_response' if @environment == 'production'
end
答案 1 :(得分:0)
已发现问题。由于某种原因,环境是硬编码的。所以我的问题的第一部分得到了回答。现在我想弄清楚cron有什么问题。
在改变了环境变量值后,cron任务开始按预期工作。现在一切都好了。