Cron トリガー
Cron トリガーは、ユーザーが scheduled() ハンドラー を使用して、Cron 式をワーカーにマッピングできるようにします。これにより、ワーカーをスケジュールに従って実行できます。
Cron トリガーは、メンテナンスや最新データを収集するためのサードパーティ API の呼び出しなど、定期的なジョブを実行するのに最適です。Cron トリガーによってスケジュールされたワーカーは、Cloudflare のキャパシティを最大限に活用し、トラフィックを効率的にルーティングするために、利用されていないマシンで実行されます。
Cron トリガーは UTC 時間で実行されます。
Cron トリガーに応答するには、ワーカーに "scheduled" ハンドラー を追加する必要があります。
以下の例を参照してコードを記述してください:
ワーカーコードを "scheduled" イベントを含むように更新した後、ワーカー プロジェクトの設定を更新する必要があります。
ワーカーが Wrangler で管理されている場合、Cron トリガーは wrangler.toml ファイルを介してのみ管理する必要があります。
以下の例を参照して、wrangler.toml の Cron トリガー設定のサンプルを確認してください:
[triggers]# Cron トリガーのスケジュール:# - 毎分の3分ごと# - 月の初日の午後3時# - 月の最終平日の午後11時59分crons = [ "*/3 * * * *", "0 15 1 * *", "59 23 LW * *" ]各 環境 に対して異なる Cron トリガーを設定することもできます。選択した環境の下に [triggers] テーブルを配置する必要があります。例えば:
[env.dev.triggers]crons = ["0 * * * *"]Cloudflare ダッシュボードで Cron トリガーを追加するには:
- Cloudflare ダッシュボード ↗ にログインし、アカウントを選択します。
- アカウント ホームで Workers & Pages を選択します。
- 概要 でワーカーを選択 > 設定 > トリガー > Cron トリガー を選択します。
Cloudflare は、5 つのフィールドを持つ cron 式と、ほとんどの Quartz スケジューラ ↗-のような cron 構文拡張をサポートしています:
| フィールド | 値 | 文字 |
|---|---|---|
| 分 | 0-59 | * , - / |
| 時間 | 0-23 | * , - / |
| 月の日 | 1-31 | * , - / L W |
| 月 | 1-12、ケースインセンシティブの3文字略語(“JAN”, “aug” など) | * , - / |
| 曜日 | 1-7、ケースインセンシティブの3文字略語(“MON”, “fri” など) | * , - / L # |
Cron トリガーの設定に役立つ一般的な時間間隔:
-
* * * * *- 毎分
-
*/30 * * * *- 毎30分
-
45 * * * *- 毎時の45分
-
0 17 * * sunまたは0 17 * * 1- 日曜日の午後5時
-
10 7 * * mon-friまたは10 7 * * 2-6- 平日の午前7時10分
-
0 15 1 * *- 月の初日の午後3時
-
0 18 * * 6Lまたは0 18 * * friL- 月の最終金曜日の午後6時
-
59 23 LW * *- 月の最終平日の午後11時59分
Cron トリガーをテストする推奨方法は、Wrangler を使用することです。
Wrangler を使用して Cron トリガーをテストするには、wrangler dev に --test-scheduled フラグを渡します。これにより、HTTP リクエストを使用してテストできる /__scheduled ルートが公開されます。異なる cron パターンをシミュレートするために、cron クエリパラメータを渡すことができます。
npx wrangler dev --test-scheduled
curl "http://localhost:8787/__scheduled?cron=*+*+*+*+*"ユーザーは、ログ ↗ の 過去の Cron イベント で Cron トリガーの実行履歴を確認できます。または、Cloudflare の GraphQL Analytics API を通じて確認できます。
詳細については、メトリクスと分析 を参照してください。
デプロイされたワーカーの Cron トリガーをダッシュボードから削除するには:
- Cloudflare ダッシュボード ↗ にログインし、アカウントを選択します。
- Workers & Pages に移動し、ワーカーを選択します。
- トリガー に移動し、削除したい Cron トリガーの横にある3点アイコンを選択 > 削除。
ワーカーごとの最大 Cron トリガー数を追跡するには、制限 を参照してください。
グリーンコンピュートが有効になっている場合、Cron トリガーは再生可能エネルギーのみで運営されているデータセンターにある Cloudflare のポイントオブプレゼンスでのみ実行されます。組織は、全体のエネルギー使用量を考慮して十分な再生可能エネルギーを調達している場合、100% 再生可能エネルギーで運営されていると主張できます。
再生可能エネルギーは、オンサイト発電(風力タービン、太陽光パネル)を通じて、または電力購入契約(PPA)と呼ばれる契約を通じて再生可能エネルギー生産者から直接購入するか、エネルギークレジット市場から再生可能エネルギー証書(REC、IRECs、GoOs)の形で購入できます。
グリーンコンピュートはアカウントレベルで構成できます:
- Cloudflare ダッシュボード ↗ にログインし、アカウントを選択します。
- アカウント ホームで Workers & Pages を選択します。
- アカウントの詳細 セクションで コンピュート設定 を見つけます。
- 変更 を選択します。
- グリーンコンピュート を選択します。
- 確認 を選択します。
- トリガー - Cron トリガーのための
wrangler.toml構文を確認します。 - 最適化された体験のために、ES モジュール構文 で Cron トリガーにアクセスする方法を学びます。