hn-hlw-service/trigger.js
2026-07-27 11:28:33 +08:00

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}`)
}
}