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

时间:2017-04-16 03:57:37

标签: javascript node.js

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

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

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

我看到有一种叫做node-schedule的东西: 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!'); 
}); 

当分钟为每小时42分钟时执行一个cron作业。

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

1 个答案:

答案 0 :(得分:0)

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!'); 
}); 

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

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

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