You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
37 lines
966 B
37 lines
966 B
2 years ago
|
'use strict';
|
||
|
|
||
|
const fs = require('fs');
|
||
|
const nodeSchedule = require('node-schedule');
|
||
|
|
||
|
// 将定时任务汇集未来可根据需要选取操作
|
||
|
module.exports = async function (app, opts) {
|
||
|
|
||
|
const scheduleInit = ({
|
||
|
interval, immediate, proRun,
|
||
|
}, callback) => {
|
||
|
if (proRun && opts.dev) {
|
||
|
return;
|
||
|
}
|
||
|
const j = nodeSchedule.scheduleJob(interval, callback);
|
||
|
if (immediate && (!proRun || (proRun && !opts.dev))) {
|
||
|
setTimeout(callback, 0)
|
||
|
}
|
||
|
return j;
|
||
|
}
|
||
|
|
||
|
app.fs.scheduleInit = scheduleInit
|
||
|
|
||
|
fs.readdirSync(__dirname).forEach((filename) => {
|
||
|
if (!['index.js'].some(f => filename == f)) {
|
||
|
const scheduleList = require(`./${filename}`)(app, opts)
|
||
|
for (let k of Object.keys(scheduleList)) {
|
||
|
console.info(`定时任务 ${k} 启动`);
|
||
|
}
|
||
|
app.fs.schedule = {
|
||
|
...app.fs.schedule,
|
||
|
...scheduleList,
|
||
|
}
|
||
|
}
|
||
|
});
|
||
|
};
|