Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Workers を定期実行する方法は一つじゃない
Search
rokuosan
July 18, 2025
Programming
640
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
internal/testlog で遊ぼう
rokuosan
0
620
発見!Ruby 9
rokuosan
0
63
CloudflareのBetaサービスでローカルなLLMを安全に公開する
rokuosan
0
550
OpenNext + Hono on Cloudflare でイマドキWeb開発スタックを実現する
rokuosan
0
750
Kotlin で始める MCP 入門
rokuosan
0
370
【学内向け】主観でやるオレオレ RubyKaigi 2025 Recap
rokuosan
0
56
Kotlin で Discord の絵文字コミュニケーションを盛り上げたい!
rokuosan
0
53
ずっと昔に Star をつけたはずの思い出せない GitHub リポジトリを見つけたい!
rokuosan
0
380
KC3 2024 Dockerで始める自宅サーバー入門
rokuosan
0
910
Other Decks in Programming
See All in Programming
우리의 Nitro Modules는 당신의 Turbo Modules보다 아름답다
l2hyunwoo
0
260
DroidKnights 2026 Android A2UI Jetpack Compose 기반의 안전한 AI UI 렌더링 - 박제창
itsmedreamwalker
1
200
AI駆動開発4年目の現在地(『あなたはFDEになるべきか?』イベント資料)
kumaiu
0
320
Event is what happens
moro
2
3.9k
TS 7.0 で baseUrl が使えなくなった今、パスエイリアスをどうするか
bicstone
2
560
Moscow Python Meetup №112. Как поселить ИИ агентов в event driven архитектуре
moscowdjango
PRO
0
110
Python Lambdaにおけるテストしやすい設計とAI支援の活用 / Designing Testable Python Lambda Functions with AI
kitano_yuichi
1
300
Getting Started with Vibe Coding
miccheng
0
190
SODA - FACT BOOK(JP)
sodainc
1
40k
Distance field of Julia set
kinakomoti321
0
310
Vapor Mode でアクセシビリティは 壊れないか検証した話
fuqda
1
330
S3 TablesのIcebergデータに、AIエージェントからアクセスしてみた / 20261016developersio2026joetsu-accessing-iceberg-in-s3tables-via-agent
kasacchiful
PRO
0
290
Featured
See All Featured
Ruling the World: When Life Gets Gamed
codingconduct
0
440
コードの90%をAIが書く世界で何が待っているのか / What awaits us in a world where 90% of the code is written by AI
rkaga
63
48k
Believing is Seeing
oripsolob
1
270
Taking LLMs out of the black box: A practical guide to human-in-the-loop distillation
inesmontani
PRO
3
2.5k
Docker and Python
trallard
47
4.3k
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
1
470
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
1
660
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
3.1k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
62k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
37
6.7k
The Impact of AI in SEO - AI Overviews June 2024 Edition
aleyda
6
1.3k
VelocityConf: Rendering Performance Case Studies
addyosmani
331
25k
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