qinglong/back/schedule.ts
2021-05-03 19:18:24 +08:00

38 lines
996 B
TypeScript

import schedule from 'node-schedule';
import DataStore from 'nedb';
import config from './config';
import { exec } from 'child_process';
import Logger from './loaders/logger';
const db = new DataStore({ filename: config.cronDbFile, autoload: true });
const run = async () => {
db.find({})
.sort({ created: 1 })
.exec((err, docs) => {
if (err) {
Logger.error(err);
process.exit(1);
}
if (docs && docs.length > 0) {
for (let i = 0; i < docs.length; i++) {
const task = docs[i];
const _schedule = task.schedule && task.schedule.split(' ');
if (_schedule && _schedule.length > 5) {
schedule.scheduleJob(task.schedule, function () {
exec(task.command);
});
}
}
}
});
};
run();
Logger.info(`
################################################
🛡️ 定时任务schedule启动成功 🛡️
################################################
`);