如何安排作业在不同时间为不同用户运行

Sam*_*Sam 6 javascript node.js

我正在构建一个功能,允许用户安排服务器生成报告。

即,用户 A 希望安排在每天下午 5 点生成报告并通过电子邮件发送给他,而用户 B 希望安排在每天上午 10 点生成报告。

可能有许多用户希望作业在他们选择的任何时间运行。

我看到有一个叫做节点计划的东西: https: //www.npmjs.com/package/node-schedule

您可以在哪里执行此操作:

var schedule = require('node-schedule'); 

var j = schedule.scheduleJob('42 * * * *', function(){ 
    console.log('The answer to life, the universe, and everything!'); 
}); 
Run Code Online (Sandbox Code Playgroud)

在每小时 42 分钟时执行 cron 作业。

如果系统只有一个用户,这样的事情可能会起作用,但对于多个用户,我无法硬编码安排作业的时间。有什么建议吗?

Ser*_*kiy -1

const schedule = require('node-schedule'); 

let schedules = {};
schedules[`${userId1}`] = schedule.scheduleJob('42 * * 1 *', function(){ 
    console.log('Generating report for user 1!'); 
}); 
schedules[`${userId2}`] = schedule.scheduleJob('42 3 * * *', function(){ 
    console.log('Generating report for user 2!'); 
}); 
schedules[`${userId3}`] = schedule.scheduleJob('42 2 * * *', function(){ 
    console.log('Generating report for user 3!'); 
}); 
Run Code Online (Sandbox Code Playgroud)

userId1 当分钟为 42(每小时)且月份为 Jan 时执行 cron 作业

userId2 在分钟为 42(每天)、小时为凌晨 3 点时执行 cron 作业

userId3 在分钟为 42(每天)、小时为凌晨 2 点时执行 cron 作业