我每天都在使用 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,因此它知道应该刷新,并且生产显示代码中的更改。唯一不同的是,在没有警告或错误的情况下,计划任务不会重复。
帮助!