我想在我的Express typescript應用程式中添加一個調度器,我的代碼如下:
app.ts(定義了埠和主機)
我想在我的Express typescript應用程式中添加一個調度器。
app.ts(埠和主機已定義)
import express from "express"。
import { createServer } from "http"/span>;
import { testTask } from "./task/updatePairsTask"/span>。
import路由器 from "./api/router"。
const app = express();
app.use(express.json()。
app.use("/"/span>, router)。
const httpServer = createServer(app)。 listen(PORT, HOST, () => {
console.log(`Started server at ${HOST}:${PORT}`/span>) 。
});
而我在這里定義了我的作業:在updatePairsTask.ts中
import schedule from "node-schedule"/span>;
export const testTask = schedule. scheduleJob("/1 * * *", ()=> {
console.log("Words"/span>)。
});
我認為這應該使調度器每隔一秒就向控制臺列印一次,但是一旦應用程式啟動,除了 "已啟動的服務器 "訊息之外,似乎沒有任何東西在列印。
你能幫助解決同樣的問題嗎?
謝謝。
uj5u.com熱心網友回復:
你可以使用這個包,以非常簡單的方式操縱Cron任務。
你可以使用這個網站來獲取Cron計劃的運算式。
import express from "Express"。
import { createServer } from "http"/span>;
import { testTask } from "./task/updatePairsTask"/span>。
// import CronJob from "cron"; // npm i cron
const CronJob = require("cron").CronJob >。
import路由器from "./api/router"。
const app = express();
app.use(express.json()。
app.use("/"/span>, 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..
});
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/310198.html
標籤:
下一篇:Heroku使用ReactJS消費API時,請求的資源上沒有'Access-Control-Allow-Origin'頭。
