我一直在使用
fastify-cron
来通过我的 fastify4 应用程序运行 cron 作业。但是,旧的 fastify-cron
插件似乎不再与 fastify5 兼容。定期运行 fastify 路线(每天一次或每周一次)的推荐方法是什么(如果有)?
@fastify/schedule
,一个核心Fastify 插件(意味着 Fastify 团队维护它),支持创建 cron 风格的调度任务。 请参阅下面的代码示例,了解运行每 5 秒向控制台打印一条消息的任务:
import Fastify from "fastify";
import { fastifySchedule } from "@fastify/schedule";
import { CronJob, AsyncTask } from "toad-scheduler";
const app = Fastify({
logger: true,
});
const task = new AsyncTask("simple task", async (taskId) => {
console.log(`this is ${taskId} that runs every 5 seconds`, Date.now());
});
const job = new CronJob(
{
cronExpression: "*/5 * * * * *", // Runs every 5 seconds
},
task
);
app.register(fastifySchedule);
// `fastify.scheduler` becomes available after initialization.
app.ready().then(() => {
app.scheduler.addCronJob(job);
});
app.listen({ host: "0.0.0.0", port: 3000 });