Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Workers を定期実行する方法は一つじゃない
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
rokuosan
July 18, 2025
Programming
510
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Workers を定期実行する方法は一つじゃない
Cloudflare Workers Tech Talks in Kyoto #1 LT
rokuosan
July 18, 2025
More Decks by rokuosan
See All by rokuosan
OpenNext + Hono on Cloudflare でイマドキWeb開発スタックを実現する
rokuosan
0
600
Kotlin で始める MCP 入門
rokuosan
0
310
【学内向け】主観でやるオレオレ RubyKaigi 2025 Recap
rokuosan
0
39
Kotlin で Discord の絵文字コミュニケーションを盛り上げたい!
rokuosan
0
17
ずっと昔に Star をつけたはずの思い出せない GitHub リポジトリを見つけたい!
rokuosan
0
360
KC3 2024 Dockerで始める自宅サーバー入門
rokuosan
0
720
お手軽アウトプット環境を求めて
rokuosan
0
230
Kotlinを使ってマイクラ鯖をWebで管理するアプリケーションを作るつもりでギリギリ間に合う予定だったけど非同期処理に躓いて大失敗した話
rokuosan
0
230
Other Decks in Programming
See All in Programming
Snowflake Summitでの新機能 CoCo / CoWork / snowflake-summit-2026-overall-what-new-coco
tatsuhiro
1
110
Hunting Vulnerabilities in Symfony with LLMs
vinceamstoutz
0
540
Technical Debt: Understanding it Rightly, Engaging it Rightly #LaravelLiveJP
shogogg
0
220
CSC307 Lecture 17
javiergs
PRO
0
320
作って学ぶ、 JSX (TSX) ランタイムの基本
syumai
7
1.6k
技術記事、AIに書かせるか、自分で書くか? 〜それでも私が自分の手で書く理由〜 / #QiitaConference
jnchito
2
1.4k
正しくソフトウェアを作る、前提を疑うための認知の視点 / doubt-premise
minodriven
21
6.5k
ADKを使って簡単にAIエージェントを作ってみよう
k1mu21
0
260
[2026年度第1回ORセミナー] 計画最適化ベンチャーと競技プログラミング人材
terryu16
0
260
LLMによるContent Moderationの本番運用の裏側と品質担保への挑戦
suikabar
2
610
ユニットテストの先へ:テスト技法で要求・仕様を整理するJava開発実践 / Beyond_Unit_Testing_Practical_Java_Development_Techniques_for_Organizing_Requirements_and_Specifications
shimashima35
0
390
Signal Forms: Details & Live Coding @enterJS 2026 in Mannheim
manfredsteyer
PRO
0
110
Featured
See All Featured
The agentic SEO stack - context over prompts
schlessera
0
810
Building the Perfect Custom Keyboard
takai
2
790
Evolving SEO for Evolving Search Engines
ryanjones
0
210
My Coaching Mixtape
mlcsv
0
140
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
122
22k
Leadership Guide Workshop - DevTernity 2021
reverentgeek
1
300
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
2.9k
What does AI have to do with Human Rights?
axbom
PRO
1
2.2k
Navigating Team Friction
lara
192
16k
Automating Front-end Workflow
addyosmani
1370
210k
How to optimise 3,500 product descriptions for ecommerce in one day using ChatGPT
katarinadahlin
PRO
1
3.6k
A better future with KSS
kneath
240
18k
Transcript
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
60ページあります
間に合わせます
⾃⼰紹介 • rokuosan ◦ id: rokuokun ◦ @rokuosan_dev • 株式会社はてな
◦ アルバイト • 若さでバトルしてます • Kyoto.kt やってます ◦ 地域 Kotlin コミュニティ
Workersを定期実⾏したい Workers で定期実⾏といえば?
Event Trigger (Cron)
wrangler.jsonc に cron を書く
Scheduled Handler を書く
デプロイするとなんか出た
動く
完成
定期実⾏できた
終 制作‧著作 ━━━━━ ⓇⓀⓈ
よかったですね
ではなく
これ以外にもあります
Durable Objects
ここから本編
Durable Objects で定期実⾏やっていき
Durable Objects ?
詳しくはこれ読んでください
(素朴な疑問) Durable Objectsで 定期実⾏の仕組みって あったっけ?
None
これ
耐久性のある物体アラーム
Durable Objects Alarm(耐久性のある物体アラーム) • プログラムからスケジュールできる ◦ Cronはダッシュボードもしくは wrangler.{jsonc,toml}に設定 • Object
単位でスケジューリング可能 • 失敗時のリトライもしてくれる ◦ 2秒始まりの Exponential backoff で最⼤6回 • cron よりも柔軟に⾊々できる • 実装は DurableObject を継承したクラスを作る(次ページ)
DurableObject#alarm が Alarm によって呼び出される •
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/
アラームの操作 • 提供されているAPI ◦ getAlarm(): number | null ◦ setAlarm(number):
void ◦ deleteAlarm(): void • 時間は ms で指定する • 次に実⾏するときのエポック時を setAlarm で渡す • https://developers.cloudflare.com/durable-objects/api/alarms/
再スケジュールできる機構を⽤意する
次のアラームをセット •
• Durable Object に値をセット 次のアラームをセット
• 現在のアラームの取得 次のアラームをセット
• 次回のアラームをセット 次のアラームをセット
• Durable Object から 設定読み取り 定期実⾏したいことを書く
• TIPS alarmInfo にリトライ情報があ る 定期実⾏したいことを書く
• したいことをする 定期実⾏したいことを書く
• 次のアラームをセット 定期実⾏したいことを書く
あっというまに出来上がり
wrangler.{jsonc,toml} • お馴染みの bindings を書く • migrations ◦ Durable Objects
は背後に SQLite が 潜んでいるのでその設定
さっき作った schedule を呼ぶだけ。 やり方は Durable Objects のRPC機能 と同じ。 スケジューラ登録くんを Hono
で書く
やってみる
動いた
よかったですね
直前までこれをやる予定だった
せっかくなのでAI
Workers AI 超⼿軽
None
AI Gateway も サッと組み込める
AI Gateway も サッと組み込める
AI や R2 などのBindingsにあるリソースも Durable Objects から扱える!
None
プロンプト書いて
10分おきに動くようにして
10分おきに嘘を教えてくる ホラ吹きずんだもんの完成
おわり
Workers Queuesでも同じことをができそう (未検証)
リポジトリ https://github.com/rokuosan/workers-schedule-example
終 制作‧著作 ━━━━━ ⓇⓀⓈ
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