如果您了解用于创建 cron 作业的whengem,这个问题可能才有意义。我的 Schedule.rb 中有一个任务,例如
every 1.day, :at => '4am' do
command "cd #{RAILS_ROOT} && rake thinking_sphinx:stop RAILS_ENV=#{RAILS_ENV}"
command "cd #{RAILS_ROOT} && rake thinking_sphinx:index RAILS_ENV=#{RAILS_ENV}"
command "cd #{RAILS_ROOT} && rake thinking_sphinx:start RAILS_ENV=#{RAILS_ENV}"
end
但是,当我使用更新我的 crontab 时
whenever --update-crontab appname --set environment=production
cron 作业仍然有 RAILS_ENV=development。我现在的生产和开发任务是相同的,我只需要更改环境变量,因为thinking_sphinx需要知道当前环境。关于如何做到这一点有什么想法吗?
Thanks!
每当未检测到您的环境时,它都会默认使用生产环境。
您可以使用 set 设置所有作业的环境:
set :environment, 'staging'
或每个工作:
every 2.hours do
runner 'My.runner', :environment => 'staging'
end
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)