【发布时间】:2011-11-17 05:19:53
【问题描述】:
我每天都在使用 rufus-scheduler 从 rails 服务器运行一个进程。出于测试目的,假设每 5 分钟一次。我的代码如下所示:
在 config/initializers/task_scheduler.rb 中
scheduler = Rufus::Scheduler::PlainScheduler.start_new
scheduler.every "10m", :first_in => '30s' do
# Do stuff
end
我也试过 cron 格式:
scheduler.cron '50 * * * *' do
# stuff
end
例如,让进程在每小时后 50 分钟运行一次。
令人愤怒的部分是它可以在我的本地机器上运行。该过程将定期运行并且正常工作。该过程仅在我的部署到生产的应用程序上运行一次,不会重复。
ps faux 显示 cron 正在运行,passenger 正在处理 rails 进程的启动,该站点已再次被 ping,因此它知道应该刷新,并且生产显示代码中的更改。唯一不同的是,在没有警告或错误的情况下,计划任务不会重复。
救命!
【问题讨论】:
-
我还确认两台机器上都安装了 rufus-scheduler gem,版本相同。
-
请说明系统cron与此问题的关系
标签: ruby-on-rails cron passenger rufus-scheduler