73 lines
2.2 KiB
JavaScript
73 lines
2.2 KiB
JavaScript
|
|
const schedule = require("node-schedule");
|
||
|
|
const api = require("./api");
|
||
|
|
const dayjs = require("dayjs");
|
||
|
|
|
||
|
|
exports.initSchedule = () => {
|
||
|
|
// triggerEveryMinute()
|
||
|
|
triggerAtNight()
|
||
|
|
};
|
||
|
|
|
||
|
|
async function triggerEveryMinute() {
|
||
|
|
schedule.scheduleJob("0 * * * * *", async () => {
|
||
|
|
runHighFrequencyTask()
|
||
|
|
});
|
||
|
|
}
|
||
|
|
|
||
|
|
async function triggerAtNight() {
|
||
|
|
// 每晚深夜定时任务每隔15分钟出发
|
||
|
|
schedule.scheduleJob("0 0 22 * * *", async () => {
|
||
|
|
runDeepNightTask();
|
||
|
|
});
|
||
|
|
schedule.scheduleJob("0 15 22 * * *", async () => {
|
||
|
|
runDeepNightTask();
|
||
|
|
});
|
||
|
|
schedule.scheduleJob("0 30 22 * * *", async () => {
|
||
|
|
runDeepNightTask();
|
||
|
|
});
|
||
|
|
schedule.scheduleJob("0 45 22 * * *", async () => {
|
||
|
|
runDeepNightTask();
|
||
|
|
});
|
||
|
|
schedule.scheduleJob("0 0 23 * * *", async () => {
|
||
|
|
runDeepNightTask();
|
||
|
|
});
|
||
|
|
schedule.scheduleJob("0 15 23 * * *", async () => {
|
||
|
|
runDeepNightTask();
|
||
|
|
});
|
||
|
|
schedule.scheduleJob("0 30 23 * * *", async () => {
|
||
|
|
runDeepNightTask();
|
||
|
|
});
|
||
|
|
schedule.scheduleJob("0 45 23 * * *", async () => {
|
||
|
|
runDeepNightTask();
|
||
|
|
});
|
||
|
|
|
||
|
|
}
|
||
|
|
// 更新购药订单状态
|
||
|
|
async function runHighFrequencyTask() {
|
||
|
|
console.log(`[${dayjs().format('YYYY-MM-DD HH:mm:ss:SSS')}] 定时任务触发`);
|
||
|
|
try {
|
||
|
|
const tradeApi = require("./hlw/trade");
|
||
|
|
await tradeApi.runScheduleTask();
|
||
|
|
// 线上购药订单处方过期定时任务
|
||
|
|
await api.getInternetHospitalApi({ type: "runOnlineRxExpireSchedule" });
|
||
|
|
// 线上购药订单定时任务
|
||
|
|
await api.getInternetHospitalApi({ type: "runMedicinePurchaseOrderSchedule" });
|
||
|
|
await api.getInternetHospitalApi({ type: "runChineseMedicineOrderSchedule" });
|
||
|
|
|
||
|
|
} catch (e) {
|
||
|
|
console.log('执行定时任务出现错误: ', e.message)
|
||
|
|
}
|
||
|
|
console.log(`[${dayjs().format('YYYY-MM-DD HH:mm:ss:SSS')}]定时任务结束`);
|
||
|
|
}
|
||
|
|
|
||
|
|
async function runDeepNightTask() {
|
||
|
|
console.log(`[${dayjs().format('YYYY-MM-DD HH:mm:ss:SSS')}] 深度定时任务触发`);
|
||
|
|
try {
|
||
|
|
api.getInternetHospitalApi({ type: "autoSetPeopleOffline" });
|
||
|
|
api.getInternetHospitalApi({ type: "autoHandleExpireOrder" });
|
||
|
|
|
||
|
|
} catch (e) {
|
||
|
|
console.log(`[${dayjs().format('YYYY-MM-DD HH:mm:ss:SSS')}] 深度定时任务执行失败: ${e.message}`)
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|