我正在使用每当 gem 运行 rake 任务。当我运行 rake 任务时,它在开发环境下运行,但是当它在预定时间运行时,它指的是生产环境。如何强制在开发环境下运行计划的 rake 任务。据我了解,我将不得不使用 RAILS_ENV 变量,但不知道该放在哪里。我认为,它与这里的每当宝石无关。
问问题
7579 次
2 回答
12
在任何bash
类型的 shell 中,您通常可以在运行时覆盖环境:
RAILS_ENV=development rake task:name...
您还可以编写一个小脚本来为您执行此操作:
#!/bin/sh
export RAILS_ENV=development
rake task:name...
这可以根据需要适用于其他外壳。
于 2013-06-28T05:05:18.500 回答
7
在schedule.rb
中,您可以指定要在其中运行计划任务的环境:
# config/schedule.rb
set :environment, 'development'
或者,您可以基于每个作业设置环境:
# config/schedule.rb
every 1.day do
runner 'Model.task', :environment => 'development'
runner 'Model.task', :environment => 'production'
end
于 2013-06-28T05:05:38.007 回答