如何在 Rails 中使用 Javan 时让 cron 工作
我已按如下方式设置了 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 --setenvironment=development
但我的模型方法(类方法)永远不会被调用。有什么方法可以验证其配置是否正确。 当我只是使用更新时,它会重置设置以使用生产环境。
I have setup my schedule.rb file as follows.
set :cron_log, "/log/cron_log.log"
if Rails.env.development?
every 1.minute do
runner "SomeModel.move_values"
runner "SomeOtherModel.dispense"
end
end
I also make it work in development mode by
whenever --update-crontab trunk --set environment=development
But my model methods (class methods) are never called. Is there some way I can verify if its configured right.
when I simply use update it resets the settings to use the production environment.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我刚刚使用了同一个 javan-whenever 插件。
在终端中,输入 crontab -l 。
如果您看到 crontab 正确生成,那么您就知道它是代码或某些服务器的东西。
您可能需要考虑在 Schedule.rb 文件中执行
set :environment, RAILS_ENV
来动态设置环境。Ryan Bates 对此做了一个很好的截屏视频:
http://railscasts.com/episodes/164-cron-in-ruby
此外,还有基于网络的替代方案,例如:
webbasedcron
I just got done using that same javan-whenever plugin.
In terminal, type
crontab -l
.If you see the crontab properly generated then you know it's either the code or some server thing.
You may want to consider doing
set :environment, RAILS_ENV
in your schedule.rb file to set the environment dynamically.Ryan Bates has done a good screencast on this:
http://railscasts.com/episodes/164-cron-in-ruby
Also, there are web-based alternatives, for example:
webbasedcron
跑步
每当 --setenvironment=test -w
在测试环境上创建 crontab 时,显然您可以将 test 替换为您正在运行的任何环境。
Run
whenever --set environment=test -w
to create your crontab on a test environment, obviously you can replace test with whatever environment you are running on.