はじめに
Fly.io 上で定期ジョブを実行する方法をお伝えします!
基本は以下ドキュメント通りで良いのだと思いますが、私はそのままの通りに設定しても動かず...😓
といった感じだったので、実際に動いた設定を共有します!
サンプル
実際に cron を実行できたサンプルコードです。
詳細
コンテナに Supercronic をインストール
Dockerfile にこちらの処理を追加します。
Supercronic とは...
Supercronic は、コンテナ内で実行するように設計された crontab 互換のジョブ ランナーとのことです!
web と cron プロセスを設定する
fly.toml をこんな感じに修正します。
[processes]
セクションに web と cron を設定します。
[http_service]
セクションに processes = ['web']
を追加します。
[[vm]]
セクションに processes = ['cron', 'web']
を追加します。
デプロイとスケール
こちらに書いてある通り、デプロイ後、スケールします。
$ fly deploy
$ fly scale count cron=1 web=
※ web はこれまで通りのコンテナ数を記載してください
これで全ておしまい! お疲れ様でした🍵
参考