← Cloudflare Workers / workers / configuration
Cron Triggers
Kontext
Cron Triggers umožňují uživatelům namapovat cron výraz na Worker pomocí scheduled() handler která umožňuje spouštět Workers podle harmonogramu.
Cron Triggers jsou ideální pro spouštění periodických úloh, například údržby nebo volání API třetích stran za účelem shromažďování aktuálních dat. Workery naplánované pomocí Cron Triggers poběží na nevytížených strojích, aby se co nejlépe využila kapacita Cloudflare a efektivně směroval provoz.
Cron Triggers se spouští v čase UTC.
Přidání Cron Trigger
1. Definujte listener pro plánovanou událost
Chcete-li reagovat na Cron Trigger, musíte přidat "scheduled" handler do vašeho Workeru.
export default {
async scheduled(controller, env, ctx) {
console.log("cron processed");
},
};interface Env {}
export default {
async scheduled(
controller: ScheduledController,
env: Env,
ctx: ExecutionContext,
) {
console.log("cron processed");
},
};from workers import WorkerEntrypoint
class Default(WorkerEntrypoint):
async def scheduled(self, controller, env, ctx):
# All four parameters (self, controller, env, ctx) are required
print("cron processed")Při psaní kódu vám pomohou následující další příklady:
2. Aktualizujte konfiguraci
Jakmile upravíte kód Workeru tak, aby obsahoval "scheduled" událost, musíte aktualizovat konfiguraci projektu Workeru.
Pomocí Konfigurační soubor Wrangler
Pokud je Worker spravován pomocí Wrangleru, měly by se Cron Triggers spravovat výhradně prostřednictvím Konfigurační soubor Wrangler.
Konfiguraci Cron Triggers najdete v příkladu níže:
{
"triggers": {
// Schedule cron triggers:
// - At every 3rd minute
// - At 15:00 (UTC) on first day of the month
// - At 23:59 (UTC) on the last weekday of the month
"crons": [
"*/3 * * * *",
"0 15 1 * *",
"59 23 LW * *"
]
}
}[triggers]
crons = [ "*/3 * * * *", "0 15 1 * *", "59 23 LW * *" ]Jiný Cron Trigger můžete také nastavit pro každé prostředí ve vašem Konfigurační soubor Wrangler. Musíte vložit triggers pole ve vámi zvoleném prostředí. Například:
{
"env": {
"dev": {
"triggers": {
"crons": [
"0 * * * *"
]
}
}
}
}[env.dev.triggers]
crons = [ "0 * * * *" ]Pomocí dashboardu
Chcete-li přidat Cron Triggers v Cloudflare dashboardu:
-
V dashboardu Cloudflare přejděte na Workers & Pages stránce.
Přejděte na Workers & Pages ↗ -
V Přehled, vyberte svého Workera > Nastavení > Triggery > Cron Triggers.
Podporované výrazy cron
Cloudflare podporuje cron výrazy s pěti poli, spolu s většinou Quartz scheduler ↗-podobná rozšíření syntaxe cronu:
| Pole | Hodnoty | Znaky |
|---|---|---|
| Minuta | 0-59 | * , - / |
| Hodiny | 0-23 | * , - / |
| Dny v měsíci | 1-31 | * , - / L W |
| Měsíce | 1-12, 3písmenné zkratky nerozlišující velikost písmen ("JAN", "aug" atd.) | * , - / |
| Pracovní dny | 1-7, 3písmenné zkratky nerozlišující velikost písmen ("MON", "fri" atd.) | * , - / L # |
Příklady
Několik běžných časových intervalů, které se mohou hodit při nastavování Cron Triggeru:
-
* * * * *- Každou minutu
-
*/30 * * * *- Každou 30. minutu
-
45 * * * *- Ve 45. minutě každé hodiny
-
0 17 * * sunnebo0 17 * * 1- 17:00 (UTC) v neděli
-
10 7 * * mon-frinebo10 7 * * 2-6- 07:10 (UTC) ve všední dny
-
0 15 1 * *- 15:00 (UTC) první den v měsíci
-
0 18 * * 6Lnebo0 18 * * friL- 18:00 (UTC) poslední pátek v měsíci
-
59 23 LW * *- 23:59 (UTC) poslední pracovní den v měsíci
Testování Cron Triggers lokálně
Testování Cron Triggers pomocí Wrangler s wrangler dev, nebo pomocí Cloudflare Vite plugin ↗. Tím se zpřístupní /cdn-cgi/handler/scheduled trasu, kterou lze otestovat pomocí HTTP požadavku. Pokud používáte Cloudflare Vite Plugin, ujistěte se, že u následujících příkazů používáte správný port Vite (výchozí port Vite je 5173).
curl "http://localhost:8787/cdn-cgi/handler/scheduled"Ve výchozím nastavení vrací endpoint výsledek naplánovaného handleru jako text. Chcete-li vrátit
strukturovaný výsledek naplánovaného handleru jako JSON, předejte ?format=json.
curl "http://localhost:8787/cdn-cgi/handler/scheduled?format=json"{
"outcome": "ok",
"noRetry": false
} noRetry pole je true když scheduled handler volá
controller.noRetry().
Chcete-li simulovat různé vzory cron, cron parametr dotazu lze předat.
curl "http://localhost:8787/cdn-cgi/handler/scheduled?cron=*+*+*+*+*"Volitelně můžete také předat time parametr dotazu k přepsání controller.scheduledTime ve vašem posluchači naplánované události.
curl "http://localhost:8787/cdn-cgi/handler/scheduled?cron=*+*+*+*+*&time=1745856238000"Zobrazit předchozí události
Chcete-li zobrazit historii spouštění Cron Triggers, zobrazte Cron Events:
-
V dashboardu Cloudflare přejděte na Workers & Pages stránce.
Přejděte na Workers & Pages ↗ -
V Přehled, vyberte svůj Worker.
-
Vyberte Nastavení.
-
V části Spouštěcí události, vyberte Zobrazit události.
Cron Events uchovává 100 nejnovějších volání naplánované události Cron. Workers Logs také zaznamenává protokoly volání pro Cron Trigger s delší dobou uchování a rozhraním pro filtrování a dotazování. Pokud máte zájem o API pro přístup k Cron Events, použijte GraphQL Analytics API.
Viz Metriky a analytika s dalšími informacemi.
Odebrat Cron Trigger
Pomocí dashboardu
Chcete-li odstranit Cron Trigger u nasazeného Workeru přes dashboard:
-
V dashboardu Cloudflare přejděte na Workers & Pages stránce.
Přejděte na Workers & Pages ↗ -
Vyberte svůj Worker.
-
Přejděte na Triggery > klikněte na ikonu tří teček vedle Cron Trigger, který chcete odebrat > Smazat.
Pomocí Konfigurační soubor Wrangler
Pokud je Worker spravován pomocí Wrangleru, měly by se Cron Triggers spravovat výhradně prostřednictvím Konfigurační soubor Wrangler.
Při nasazení Workeru pomocí Wrangleru se všechny předchozí Cron Triggers nahradí těmi, které jsou uvedeny v triggers pole.
- Pokud
cronsvlastnost prázdné pole, odstraní se všechny Cron Triggers. - Pokud
triggersnebocronsvlastnost jsouundefinedpak aktuálně nasazené Cron Triggers zůstanou beze změny.
{
"triggers": {
// Remove all cron triggers:
"crons": []
}
}[triggers]
crons = [ ]Limity
Viz Limity pro sledování maximálního počtu Cron Triggers na jeden Worker.
Green Compute
Když je zapnutý Green Compute, vaše Cron Triggers poběží pouze v Cloudflare points of presence umístěných v datacentrech napájených výhradně obnovitelnou energií. Organizace mohou tvrdit, že jsou napájeny ze 100 % obnovitelnou energií, pokud nakoupily dostatek obnovitelné energie k pokrytí celkové spotřeby.
Obnovitelnou energii lze pořizovat několika způsoby, mimo jiné vlastní výrobou na místě (větrné turbíny, solární panely), přímo od výrobců obnovitelné energie na základě smluv nazývaných Power Purchase Agreements (PPA), nebo formou Renewable Energy Credits (REC, IRECs, GoOs) z trhu s energetickými certifikáty.
Green Compute lze nakonfigurovat na úrovni účtu:
-
V dashboardu Cloudflare přejděte na Workers & Pages stránce.
Přejděte na Workers & Pages ↗ -
V Podrobnosti o účtu sekci najděte Nastavení Compute.
-
Vyberte Změna.
-
Vyberte Green Compute.
-
Vyberte Potvrdit.
Související zdroje
- Triggery - Projděte si syntaxi konfiguračního souboru Wrangler pro Cron Triggers.
- Přečtěte si, jak přistupovat k Cron Triggers v syntaxe ES modulů pro optimalizovaný zážitek.