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 分にプロセスを実行するようにします。
腹立たしいのは、それが私のローカルマシンで動作することです。プロセスは定期的に実行され、機能します。プロセスが 1 回実行され、繰り返されないのは、本番環境にデプロイされたアプリのみです。
ps faux は、cron が実行されていること、passenger が rails プロセスのスピンアップを処理していること、サイトが再度 ping されているため更新する必要があることを示していることを明らかにし、本番環境はコードの変更を示しています。唯一の違いは、警告やエラーがなければ、スケジュールされたタスクが繰り返されないことです。
ヘルプ!