コンテンツにスキップ

Cron トリガー

背景

Cron トリガーは、ユーザーが scheduled() ハンドラー を使用して、Cron 式をワーカーにマッピングできるようにします。これにより、ワーカーをスケジュールに従って実行できます。

Cron トリガーは、メンテナンスや最新データを収集するためのサードパーティ API の呼び出しなど、定期的なジョブを実行するのに最適です。Cron トリガーによってスケジュールされたワーカーは、Cloudflare のキャパシティを最大限に活用し、トラフィックを効率的にルーティングするために、利用されていないマシンで実行されます。

Cron トリガーは UTC 時間で実行されます。

Cron トリガーの追加

1. スケジュールされたイベントリスナーを定義する

Cron トリガーに応答するには、ワーカーに "scheduled" ハンドラー を追加する必要があります。

以下の例を参照してコードを記述してください:

2. 設定を更新する

ワーカーコードを "scheduled" イベントを含むように更新した後、ワーカー プロジェクトの設定を更新する必要があります。

wrangler.toml を介して

ワーカーが 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 トリガーを追加するには:

  1. Cloudflare ダッシュボード にログインし、アカウントを選択します。
  2. アカウント ホームで Workers & Pages を選択します。
  3. 概要 でワーカーを選択 > 設定 > トリガー > Cron トリガー を選択します。

サポートされている 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 トリガーのテスト

Cron トリガーをテストする推奨方法は、Wrangler を使用することです。

Wrangler を使用して Cron トリガーをテストするには、wrangler dev--test-scheduled フラグを渡します。これにより、HTTP リクエストを使用してテストできる /__scheduled ルートが公開されます。異なる cron パターンをシミュレートするために、cron クエリパラメータを渡すことができます。

Terminal window
npx wrangler dev --test-scheduled
curl "http://localhost:8787/__scheduled?cron=*+*+*+*+*"

過去のイベントを表示

ユーザーは、ログ過去の Cron イベント で Cron トリガーの実行履歴を確認できます。または、Cloudflare の GraphQL Analytics API を通じて確認できます。

詳細については、メトリクスと分析 を参照してください。

Cron トリガーの削除

ダッシュボードを介して

デプロイされたワーカーの Cron トリガーをダッシュボードから削除するには:

  1. Cloudflare ダッシュボード にログインし、アカウントを選択します。
  2. Workers & Pages に移動し、ワーカーを選択します。
  3. トリガー に移動し、削除したい Cron トリガーの横にある3点アイコンを選択 > 削除

制限

ワーカーごとの最大 Cron トリガー数を追跡するには、制限 を参照してください。

グリーンコンピュート

グリーンコンピュートが有効になっている場合、Cron トリガーは再生可能エネルギーのみで運営されているデータセンターにある Cloudflare のポイントオブプレゼンスでのみ実行されます。組織は、全体のエネルギー使用量を考慮して十分な再生可能エネルギーを調達している場合、100% 再生可能エネルギーで運営されていると主張できます。

再生可能エネルギーは、オンサイト発電(風力タービン、太陽光パネル)を通じて、または電力購入契約(PPA)と呼ばれる契約を通じて再生可能エネルギー生産者から直接購入するか、エネルギークレジット市場から再生可能エネルギー証書(REC、IRECs、GoOs)の形で購入できます。

グリーンコンピュートはアカウントレベルで構成できます:

  1. Cloudflare ダッシュボード にログインし、アカウントを選択します。
  2. アカウント ホームで Workers & Pages を選択します。
  3. アカウントの詳細 セクションで コンピュート設定 を見つけます。
  4. 変更 を選択します。
  5. グリーンコンピュート を選択します。
  6. 確認 を選択します。

関連リソース

  • トリガー - Cron トリガーのための wrangler.toml 構文を確認します。
  • 最適化された体験のために、ES モジュール構文 で Cron トリガーにアクセスする方法を学びます。