INTEGRITY Dokumentace

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 }