← Cloudflare Workers / workers / testing / miniflare / core
Naplánované události
Cron Triggers
scheduled události se automaticky odesílají podle zadaných cron
triggerů:
const mf = new Miniflare({
crons: ["15 * * * *", "45 * * * *"],
});HTTP triggery
Protože čekání na cron triggery je otravné, můžete místo toho odesílat HTTP požadavky
na /cdn-cgi/mf/scheduled ke spuštění scheduled události:
$ curl "http://localhost:8787/cdn-cgi/mf/scheduled"Chcete-li simulovat různé hodnoty scheduledTime a cron v odeslané
události použijte time a cron parametry dotazu:
$ curl "http://localhost:8787/cdn-cgi/mf/scheduled?time=1000"
$ curl "http://localhost:8787/cdn-cgi/mf/scheduled?cron=*+*+*+*+*"Odesílání událostí
Při použití API getWorker funkci lze použít k odeslání
scheduled události do vašeho Workeru. To lze použít k testování odpovědí.
Přijímá volitelné scheduledTime a cron parametry, které se ve výchozím nastavení rovnají
aktuálnímu času a prázdnému řetězci. Vrátí promise, který se
převede na pole obsahující data vrácená všemi očekávanými promisy:
import { Miniflare } from "miniflare";
const mf = new Miniflare({
modules: true,
script: `
export default {
async scheduled(controller, env, ctx) {
const lastScheduledController = controller;
if (controller.cron === "* * * * *") controller.noRetry();
}
}
`,
});
const worker = await mf.getWorker();
let scheduledResult = await worker.scheduled({
cron: "* * * * *",
});
console.log(scheduledResult); // { outcome: 'ok', noRetry: true }
scheduledResult = await worker.scheduled({
scheduledTime: new Date(1000),
cron: "30 * * * *",
});
console.log(scheduledResult); // { outcome: 'ok', noRetry: false }