禁用登台服务器上的rake任务

时间:2016-09-25 19:19:17

标签: ruby-on-rails ruby

我有一个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每小时执行一次任务,但它可以全天候工作。

2 个答案:

答案 0 :(得分:1)

您可以使用schedule.rb变量

检查@environment中的环境
every "10 7-21 * * *" do
  rake 'checks:test_visible_response' if @environment == 'production'
end

答案 1 :(得分:0)

已发现问题。由于某种原因,环境是硬编码的。所以我的问题的第一部分得到了回答。现在我想弄清楚cron有什么问题。

在改变了环境变量值后,cron任务开始按预期工作。现在一切都好了。