安排路线或控制器
schedule route or controller
我有一个控制器
exports.updateDaily = async (req, res) => {
try {
const updateDaily = await transaction.decrement(
{
remainActive: 1,
},
{
where: {
remainActive: { [Op.gte]: 1 },
},
}
);
console.log(updateDaily);
res.status(200).send({
status: "Success",
});
} catch (error) {
console.log(error);
res.status(400).send({
status: "Failed",
});
}
};
和这样的路线
router.patch('/updateDaily', updateDaily)
Using cron-node
let job = new cron.schedule('2 * * * *', () => {
router.patch('/updateDaily', updateDaily);
});
job.start()
Using setIntverval
const scheduller = () => {
return router.patch('/updateDaily', updateDaily);
}
setInterval(scheduller,600000)
如何每 10 分钟制作一个 运行?我已经用 node-cron 或 setInterval 尝试过了,但没有任何反应
你理解错了。有一个预定的工作意味着 运行 周期性地做一些事情,这必须是一个做某事的功能。您不需要在其中定义路由器。您的代码只做一件事——安排路由器在预定时间到来后可供用户使用,并每 10 分钟重新定义一次。
您需要为该操作创建一个单独的函数并在预定的时间调用它,此时拥有一个路由器是额外的,除非您想要 运行 它在用户发送请求时作为嗯
const myDailyTask = async () => {
await transaction.decrement(
{
remainActive: 1,
},
{
where: {
remainActive: { [Op.gte]: 1 },
},
}
);
};
const id = setInterval(myDailyTask, 600_000);
它应该以同样的方式用于 cron 作业
const job = new cron.schedule('2 * * * *', () => {
myDailyTask();
});
job.start();
我有一个控制器
exports.updateDaily = async (req, res) => {
try {
const updateDaily = await transaction.decrement(
{
remainActive: 1,
},
{
where: {
remainActive: { [Op.gte]: 1 },
},
}
);
console.log(updateDaily);
res.status(200).send({
status: "Success",
});
} catch (error) {
console.log(error);
res.status(400).send({
status: "Failed",
});
}
};
和这样的路线
router.patch('/updateDaily', updateDaily)
Using cron-node
let job = new cron.schedule('2 * * * *', () => {
router.patch('/updateDaily', updateDaily);
});
job.start()
Using setIntverval
const scheduller = () => {
return router.patch('/updateDaily', updateDaily);
}
setInterval(scheduller,600000)
如何每 10 分钟制作一个 运行?我已经用 node-cron 或 setInterval 尝试过了,但没有任何反应
你理解错了。有一个预定的工作意味着 运行 周期性地做一些事情,这必须是一个做某事的功能。您不需要在其中定义路由器。您的代码只做一件事——安排路由器在预定时间到来后可供用户使用,并每 10 分钟重新定义一次。
您需要为该操作创建一个单独的函数并在预定的时间调用它,此时拥有一个路由器是额外的,除非您想要 运行 它在用户发送请求时作为嗯
const myDailyTask = async () => {
await transaction.decrement(
{
remainActive: 1,
},
{
where: {
remainActive: { [Op.gte]: 1 },
},
}
);
};
const id = setInterval(myDailyTask, 600_000);
它应该以同样的方式用于 cron 作业
const job = new cron.schedule('2 * * * *', () => {
myDailyTask();
});
job.start();