INTEGRITY Dokumentace

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:

  1. V dashboardu Cloudflare přejděte na Workers & Pages stránce.

    Přejděte na Workers & Pages ↗
  2. 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:

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:

  1. V dashboardu Cloudflare přejděte na Workers & Pages stránce.

    Přejděte na Workers & Pages ↗
  2. V Přehled, vyberte svůj Worker.

  3. Vyberte Nastavení.

  4. 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:

  1. V dashboardu Cloudflare přejděte na Workers & Pages stránce.

    Přejděte na Workers & Pages ↗
  2. Vyberte svůj Worker.

  3. 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.

{
	"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:

  1. V dashboardu Cloudflare přejděte na Workers & Pages stránce.

    Přejděte na Workers & Pages ↗
  2. V Podrobnosti o účtu sekci najděte Nastavení Compute.

  3. Vyberte Změna.

  4. Vyberte Green Compute.

  5. Vyberte Potvrdit.