node-schedule 不适用于 express 应用程序

node-schedule not working with express app

我正在尝试向我的 express typescript 应用程序添加一个调度程序,我的代码如下:

app.ts(定义了端口和主机)

import express from "express";
import { createServer } from "http";
import { testTask } from "./task/updatePairsTask";

import router from "./api/router";

const app = express();

app.use(express.json());
app.use("/", router);

const httpServer = createServer(app).listen(PORT, HOST, () => {
  console.log(`Started server at ${HOST}:${PORT}`);
});

我在这里定义了我的工作:updatePairsTask.ts

import schedule from "node-schedule";

export const testTask = schedule.scheduleJob("/1 * * * * *", () => {
  console.log("Words");
});

我假设这应该让调度程序每隔一秒向控制台打印一次,但是一旦应用程序启动,除了“已启动服务器”消息之外似乎什么也没有打印。

你能帮忙吗?

谢谢。

您可以使用 this 包以非常简单的方式操作 Cron 任务。

您可以使用 this 网站获取 cron 计划表达式。

import express from "express";
import { createServer } from "http";
import { testTask } from "./task/updatePairsTask";
// import CronJob from "cron"; // npm i cron
const CronJob = require("cron").CronJob

import router from "./api/router";

const app = express();

app.use(express.json());
app.use("/", router);

const job = new CronJob({
    cronTime: '* * * * * *',
    onTick: function () {
        testTask()
    },
    start: false,
    timeZone: 'Asia/Kolkata'
})

job.start()

const httpServer = createServer(app).listen(PORT, HOST, () => {
  console.log(`Started server at ${HOST}:${PORT}`);
  // you can also put job.start() here.
});