Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Workers を定期実行する方法は一つじゃない

Workers を定期実行する方法は一つじゃない

Cloudflare Workers Tech Talks in Kyoto #1 LT

Avatar for rokuosan

rokuosan

July 18, 2025
Tweet

More Decks by rokuosan

Other Decks in Programming

Transcript

  1. Workers を定期実行する方法は一つじゃない There's more than one way to Trigger It

    on Worker Cloudflare Workers Tech Talks in Kyoto #1 2025/07/18 @rokuosan_dev id:rokuokun
  2. ⾃⼰紹介 • rokuosan ◦ id: rokuokun ◦ @rokuosan_dev • 株式会社はてな

    ◦ アルバイト • 若さでバトルしてます • Kyoto.kt やってます ◦ 地域 Kotlin コミュニティ
  3. Durable Objects Alarm(耐久性のある物体アラーム) • プログラムからスケジュールできる ◦ Cronはダッシュボードもしくは wrangler.{jsonc,toml}に設定 • Object

    単位でスケジューリング可能 • 失敗時のリトライもしてくれる ◦ 2秒始まりの Exponential backoff で最⼤6回 • cron よりも柔軟に⾊々できる • 実装は DurableObject を継承したクラスを作る(次ページ)
  4. Alarm と Cron Trigger 登録制限 CPU 時間 経過実時間 wall-clock time

    プログラムから の操作 エラー時のリトライ Cron Trigger Free: アカウントごとに 5 個 Paid: アカウントごとに 250 個 Free: 10ms Paid: 15min 15分 不可 なし Durable Object Alarm 制限なし ※ Durable Object のクラス数 (実装の数)は制限あり Free: 100 Paid: 500 デフォルト30秒 設定で5分まで引き 上げ可能 15分 可能 あり 2秒始まりの Exponential Backoff 最大6回 https://developers.cloudflare.com/workers/platform/limits/#worker-limits https://developers.cloudflare.com/durable-objects/platform/limits/
  5. アラームの操作 • 提供されているAPI ◦ getAlarm(): number | null ◦ setAlarm(number):

    void ◦ deleteAlarm(): void • 時間は ms で指定する • 次に実⾏するときのエポック時を setAlarm で渡す • https://developers.cloudflare.com/durable-objects/api/alarms/
  6. Workers を定期実行する方法は一つじゃない There's more than one way to Trigger It

    on Worker Cloudflare Workers Tech Talks in Kyoto #1 2025/07/18 @rokuosan_dev id:rokuokun