<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Cron on BenzHub</title><link>https://benzhub.github.io/tags/cron/</link><description>Recent content in Cron on BenzHub</description><generator>Hugo</generator><language>zh-TW</language><lastBuildDate>Sun, 09 Aug 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://benzhub.github.io/tags/cron/index.xml" rel="self" type="application/rss+xml"/><item><title>Workers Cron Triggers 排程:scheduled handler 與 cron 表達式實戰 | Cloudflare 完整教學</title><link>https://benzhub.github.io/post/cloudflare/009-cron-triggers/</link><pubDate>Sun, 09 Aug 2026 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/post/cloudflare/009-cron-triggers/</guid><description>&lt;blockquote&gt;
&lt;p&gt;前幾篇我們的 &lt;strong&gt;Worker&lt;/strong&gt; 都是「被動」的——有人送請求上門,&lt;code&gt;fetch&lt;/code&gt; handler 才醒來做事。但真實世界有一大類任務是&lt;strong&gt;主動、定時&lt;/strong&gt;的:每天凌晨清掉過期資料、每小時同步一次匯率、每五分鐘寄一批待發的通知。這種「不靠人觸發、時間到就自己跑」的能力,靠的就是 &lt;strong&gt;Cloudflare Workers&lt;/strong&gt; 的 &lt;strong&gt;Cron Triggers&lt;/strong&gt;。這一篇我們深入排程:在 &lt;code&gt;wrangler.jsonc&lt;/code&gt; 的 &lt;strong&gt;&lt;code&gt;triggers.crons&lt;/code&gt;&lt;/strong&gt; 設定 &lt;strong&gt;cron 表達式&lt;/strong&gt;、匯出 &lt;strong&gt;&lt;code&gt;scheduled(event, env, ctx)&lt;/code&gt;&lt;/strong&gt; handler、用 &lt;code&gt;event.cron&lt;/code&gt; 與 &lt;code&gt;scheduledTime&lt;/code&gt; 做多排程分流、以 &lt;strong&gt;&lt;code&gt;wrangler dev --test-scheduled&lt;/code&gt;&lt;/strong&gt; 在本地觸發測試,並講清楚 cron 為何一律吃 &lt;strong&gt;UTC&lt;/strong&gt;、為何一定要用 &lt;strong&gt;&lt;code&gt;ctx.waitUntil&lt;/code&gt;&lt;/strong&gt;、以及長任務何時該交棒給 &lt;strong&gt;Queues&lt;/strong&gt; 或 &lt;strong&gt;Workflows&lt;/strong&gt;。&lt;/p&gt;
&lt;/blockquote&gt;</description></item></channel></rss>