テック技報最新号へ →
インフラ

Workers の Cron Trigger をローカルで試す: Local Explorer から scheduled() を 1 回だけ呼ぶ

wrangler dev などで起動したサーバーの /cdn-cgi/local/explorer を開き、Cron Triggers から好きな cron 式と実行時刻で scheduled() ハンドラーを呼べるようになった。手で URL を組み立てて curl する必要がない。

@CFchangelog · 投稿 2026-10-17
#infra#cloudflare#workers#cron#local-dev

どんなときに使う?

  • Cron で動く Worker(集計、掃除、定期取得など)をデプロイ前に確かめたい
  • 「毎時 0 分」と「毎日 3 時」で処理を分けているなど、controller.cron や scheduledTime で分岐するロジックを試したい
  • エージェントに Cron 処理のテストをさせたい(API でも呼べる)

手順

  1. 開発サーバーを起動する(cf dev、wrangler dev、Cloudflare Vite プラグインのどれでも可)
  2. ブラウザで http://localhost:8787/cdn-cgi/local/explorer を開く(Vite なら 5173 など、自分のポートに置き換える)
  3. Cron Triggers を選び、次のどれかをする
    • 設定済みの cron 式をそのまま実行
    • その場で cron 式を組み立てて実行(設定ファイルは変わらない)
    • 実行時刻(scheduledTime)を指定して実行。よく使う時刻はプリセットとして保存できる
  4. 結果と noRetry() を呼んだかどうかを画面で確認する

スクリプトやエージェントからは同じ操作を API で呼べる:

bash
curl -X POST \
  "http://localhost:8787/cdn-cgi/local/explorer/api/local/scheduled?worker=my-worker" \
  -H "Content-Type: application/json" \
  --data '{"cron":"0 * * * *","scheduled_time":1745856238000}'

worker には Worker 名を正確に入れる。scheduled_time はミリ秒の UNIX 時刻で省略可。

注意点

  • ローカル開発では cron が自動では動かない。試すときはこの画面か API から明示的に呼ぶ
  • その場で作った cron 式や時刻のプリセットはブラウザ内だけに保存され、cloudflare.config.ts・Wrangler 設定・デプロイ済みの Cron Trigger は変わらない
  • 詳しいログやトレースは、その Worker を動かしている開発セッションで Observability を有効にしていると見られる

出典

X の元の投稿を開く