🚀 新規事業

cron-trigger-pattern

最終更新 2026年05月09日 / 40_新規事業/SCALE_Build/カタログ/機能集/cron-trigger-pattern.md

Cron トリガーパターン

用途

Cloudflare Workers の Cron Trigger で定期実行する標準パターン。

特徴

  • cron式
  • KV更新
  • Slack通知連携

コード(コピペ用)

// Cloudflare Workers - Cron Trigger
// wrangler.toml:
//   [triggers]
//   crons = ["0 9 * * *", "*/30 * * * *"]

interface Env {
  CACHE: KVNamespace;
  SLACK_TOKEN: ●●●●●●;
}

export default {
  async scheduled(event: ScheduledEvent, env: Env, ctx: ExecutionContext) {
    console.log('Cron triggered:', event.cron, new Date().toISOString());

    // 朝9時のみ
    if (event.cron === '0 9 * * *') {
      ctx.waitUntil(sendDailyReport(env));
    }
    // 30分おき
    if (event.cron === '*/30 * * * *') {
      ctx.waitUntil(refreshCache(env));
    }
  },
};

async function sendDailyReport(env: Env) {
  const data = await env.CACHE.get('today:metrics', 'json');
  // Slack 投稿等
}

async function refreshCache(env: Env) {
  const fresh = await fetch('https://api.example.com/data').then((r) => r.json());
  await env.CACHE.put('cache:data', JSON.stringify(fresh), { expirationTtl: 3600 });
}

使い方

対象プロジェクトに該当ファイルをコピーして、props を流し込むだけ。

注意事項

  • 依存パッケージを忘れず追加