我已按以下方式设置了schedule.rb文件。
set :cron_log, "/log/cron_log.log"
if Rails.env.development?
every 1.minute do
runner "SomeModel.move_values"
runner "SomeOtherModel.dispense"
end
end
我也让它在开发模式下工作 每当--update-crontab trunk --set environment = development
但我的模型方法(类方法)从未被调用过。有什么方法可以验证它是否配置正确。 当我只使用更新时,它会重置设置以使用生产环境。
答案 0 :(得分:2)
我刚刚使用相同的javan-when插件完成了。
在终端中,键入crontab -l
。
如果您看到正确生成的crontab,那么您就知道它是代码或某些服务器的东西。
您可能需要考虑在schedule.rb文件中执行set :environment, RAILS_ENV
以动态设置环境。
Ryan Bates对此进行了很好的截屏: http://railscasts.com/episodes/164-cron-in-ruby
此外,还有基于网络的替代方案,例如: webbasedcron
答案 1 :(得分:1)
运行 每当--set environment = test -w
在测试环境中创建crontab,显然你可以用你正在运行的任何环境替换测试。