夜間メンテナンスジョブ

インスタンスは毎晩、自分自身の後片付けをします。このページでは、何が、いつ、どんな条件のもとで実行されるかを説明します。アプリが自動的に行うことに、驚かされることがないようにするためです。

夜間に実行されるジョブ

3つのジョブが毎日実行され、それぞれ優先度の低いキューに登録されます。

  • 0時30分、非アクティブユーザーの削除。 非アクティブ状態が続いたときの自動削除に自らオプトインしていて、6か月以上非アクティブなユーザーを削除します。削除のたびに、ACCOUNT_DELETION_NOTIFICATION_EMAILに設定したアドレスに通知が送られます。オプトインしていないユーザーは一切対象になりません。
  • 1時00分、ゴミ箱の完全削除。 ゴミ箱内にあるもののうち、保持期間(TRASH_RETENTION_DAYS、デフォルトは30日)を過ぎたものを完全に削除します。この期間内であれば、ゴミ箱に入ったオブジェクトは復元可能なままです。
  • 2時00分、期限超過の貸出の記録。 返却期限を過ぎた貸出を、期限超過として記録します。これにより、コレクターは戻ってきていないものをひと目で把握できます。

3つとも安全で、想定通りの動作です。ユーザーが明示的に削除、オプトイン、日付指定したものにしか作用しません。

稼働している必要があるもの

これを実現しているのは2つのコンテナです。

  • scheduler役割が、実行のタイミングを判断し、各ジョブをキューに登録します。
  • queue役割が、実際にそれらを実行します。
メモ

どちらかのコンテナが停止していると、メンテナンスは何も知らせずに止まります。ゴミ箱は保持期間を過ぎても溜まり続け、期限超過の貸出はアクティブなまま記録され、オプトインした非アクティブユーザーも整理されません。何かが壊れるわけではありませんが、何も実行されなくなります。夜間の動作が止まったように見える場合は、docker compose psを確認してください。

すべての処理は、次に成功した実行時にまとめて追いつくので、一晩分実行を逃しても問題はありません。

次に読むべきもの

KolleK のドキュメント このページを GitHub で編集
このページは役に立ちましたか?