我有一個rake任務,每當使用gem時,每小時都會啓動一次rake任務。我想在暫存服務器上禁用它,但使用if
語句解決此問題的顯而易見的方式不起作用。我的代碼是:在暫存服務器上禁用rake任務
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每小時執行一次任務,但它每天24小時工作。
我有點驚訝,檢查'Rails.env.production?'不起作用(這將是我的建議)。這有點嚇人,因爲它暗示''無論何時''可以在生產環境下以某種方式運行rake任務。可能想嘗試在rake任務中打印'Rails.env'和'ENV ['RAILS_ENV']'來查看你得到的結果? – gmcnaughton
該問題已找到。環境由於某種原因而被硬編碼。所以我的問題的第一部分已經回答了。現在我試圖弄清楚cron有什麼問題。 – enjaku
它沒有硬編碼,它很可能只是設置:)請參閱我的編輯您的cron的東西 –