如何解决如何清除在nodejs中什么都不做的cron作业
我是一名新开发人员,正在尝试使用 graphql 和 mongodb 在 nodejs 中构建一个待办事项应用程序。我想安排一些任务,这些任务属于日常任务,用户希望将这些任务添加到他们的日常任务列表中。我决定为此使用 node-cron,但我有点困惑。这就是我现在正在做的:
const routineCron = cron.schedule(
cronString,async () => {
const actions = await model.findOne({ user: user },"actions");
actions.map(async (action) => {
action.routineType = null;
action.currentList = calendar;
const savedAction = new Action(action);
await savedAction.save();
});
},{ timezone: timeZone }
);
cronString 派生自 switch case 检查它是哪种类型的例程:
switch (routineType) {
case "Daily":
model = Daily;
cronString = "0 0 * * *";
break;
case "Weekly":
model = Weekly;
cronString = "0 0 * * 0";
break;
case "Monthly":
model = Monthly;
cronString = "0 0 1 * *";
break;
case "Quarterly":
model = Quarterly;
cronString = "0 0 1 */3 *";
break;
case "Yearly":
model = Yearly;
cronString = "0 0 0 1 *";
break;
default:
throw new Error("Routine Type incorrect");
}
现在的问题是我想从模型中找到操作(在 switch case 中定义)并将它们添加到名为日历的用户当前日期列表中,这将为每个用户创建一个 cronjob。但是,如果用户删除例程,那么他的模型中将没有任何操作,并且不需要 cron 作业。这种情况我该怎么办。此外,我将 cronjob 分配给了一个常量,但是当下一个用户进行 cronjob 时,它是否会起作用,因为分配了相同的常量名称?任何帮助表示赞赏。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。