Closed Kassy0220 closed 3 weeks ago
Heroku上で定期実行処理を行うには、次の方法がある模様。
その中で、今回はHeroku Schedulerという無料のアドオンを採用することにした。 ただし、ジョブがスキップされたり、ジョブが2回実行されたりする可能性があることに注意が必要。
非常にまれな場合として、ジョブがスキップされることがあります。 非常にまれな場合として、ジョブが 2 回実行されることがあります。
https://devcenter.heroku.com/ja/articles/scheduler
どれくらい失敗するのか調べてみたところ、次の記事がヒットした。 https://qiita.com/satour/items/f5911a6f4f7b04975a8d
検証内容(2016 - 2017に検証)
だいたいの場合、1回起動に失敗したあとでも、次の1時間後のスケジュールでは正常に起動しているようです。
FjordMinutesでは、一時間に一回の定期実行処理を毎日実行しようと考えている。 仮に上記の失敗率であれば、十分運用に耐えうるものであると判断した。
ジョブが2回実行されてしまう問題に関しては、複数回実行されても(同じ日付の議事録が複数作成されてしまうといった)問題が発生しないような処理を実装することで対応する。
現在次の処理をプロトタイプアプリに実装して、本番環境にデプロイしている。
これらの処理が正しく動作していることを確認でき次第、このIssueをクローズする。
プロトタイプアプリで議事録作成処理と開催当日の通知処理が正しく動作していることを確認できたので、このIssueをクローズします。
議事録を自動で特定の日時に作成しようと考えている。 議事録を作成する処理を、特定の日時に実行する方法を調べる。