【发布时间】:2020-11-17 19:57:24
【问题描述】:
我有带有自动报告设置的项目。用户在项目上有一个界面,他可以在每个项目上进行设置。
每天(每天或每 X 天)
每周(他可以选择工作日,也可以说“我每 2,3,4 等周需要这个)
每月(他可以选择日期并检查是否希望在每个月底拥有它)
在每个项目的数据库中,我在表 CronJobs 中插入一个像这样的集合:
id: string;
name: string; // name of the job (ProjectReport)
entityType: string; // name of the entity (in my case Project)
entityId: string; // id of the entity (of the Project)
frequency: //(daily, weekly, monthly, never) ;
every: number; // (every x days/ weeks/ months)
on: number[]; // (for weekly/ monthly I need to know in which days I will execute the job)
timezone: string;
startDate: Date;
endDate: Date;
lastRunDate: Date;
现在我创建了一个每小时运行的 cron。我不知道确定是否需要运行 cronjob 的最佳方法。如果有人可以帮助我一些想法?
例如,用户设置他希望从 2020 年 5 月 12 日 12:20 每 1 周开始,每周一和周五有一个报告。
我需要考虑到服务器可能会死掉,以防止在某些情况下发送两次报告。
【问题讨论】:
标签: node.js mongodb cron scheduled-tasks