From 612127d7830372cda153b4af4a41c5e3b9f7e4f0 Mon Sep 17 00:00:00 2001 From: eight <641137800@qq.com> Date: 星期四, 29 八月 2024 18:28:32 +0800 Subject: [PATCH] update job scheduler --- jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/config/DynamicSchedulingConfig.java | 38 +++++++++++++++++++++++++++++++------- 1 files changed, 31 insertions(+), 7 deletions(-) diff --git a/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/config/DynamicSchedulingConfig.java b/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/config/DynamicSchedulingConfig.java index 6b2108d..1eccc87 100644 --- a/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/config/DynamicSchedulingConfig.java +++ b/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/config/DynamicSchedulingConfig.java @@ -2,18 +2,23 @@ import cn.lihu.jh.module.ecg.Utils; import cn.lihu.jh.module.ecg.service.queue.QueueService; +import cn.lihu.jh.module.ecg.service.room.RoomService; import cn.lihu.jh.module.infra.api.config.ConfigApi; import org.springframework.context.annotation.Configuration; import org.springframework.scheduling.annotation.EnableScheduling; import org.springframework.scheduling.annotation.SchedulingConfigurer; +import org.springframework.scheduling.config.CronTask; +import org.springframework.scheduling.config.ScheduledTask; import org.springframework.scheduling.config.ScheduledTaskRegistrar; import javax.annotation.Resource; import java.time.LocalTime; import java.time.format.DateTimeFormatter; +import java.util.List; import java.util.concurrent.Executors; import static cn.lihu.jh.module.ecg.Constants.ECG_OPENING_TIME_KEY; +import static cn.lihu.jh.module.ecg.Constants.ECG_ROOM_RESET_TIME_KEY; @Configuration @EnableScheduling @@ -25,19 +30,38 @@ @Resource private QueueService queueService; + @Resource + private RoomService roomService; + @Override public void configureTasks(ScheduledTaskRegistrar taskRegistrar) { taskRegistrar.setScheduler(Executors.newScheduledThreadPool(1)); - String strOpeningTime = configApi.getConfigValueByKey(ECG_OPENING_TIME_KEY); - LocalTime openingTime = Utils.parseOpeningTime(strOpeningTime); - String cronExpression = String.format("0 %d %d * * ?", openingTime.getMinute(), openingTime.getHour()); - System.out.println(cronExpression); + String strOpenCloseTime = configApi.getConfigValueByKey(ECG_OPENING_TIME_KEY); + List<LocalTime> list = Utils.parseOpeningTime(strOpenCloseTime); + LocalTime openingTime = list.get(0); + LocalTime closeTime = list.get(1); + String openCronExpression = String.format("0 %d %d * * ?", openingTime.getMinute(), openingTime.getHour()); + String closeCronExpression = String.format("0 %d %d * * ?", closeTime.getMinute(), closeTime.getHour()); - taskRegistrar.addCronTask(() -> { - System.out.println("Dynamic Task executed at: " + System.currentTimeMillis()); + String strRoomResetTime = configApi.getConfigValueByKey(ECG_ROOM_RESET_TIME_KEY); + LocalTime roomResetTime = Utils.parseTime(strRoomResetTime); + String roomResetCronExpression = String.format("0 %d %d * * ?", roomResetTime.getMinute(), roomResetTime.getHour()); + + taskRegistrar.scheduleCronTask(new CronTask(() -> { + System.out.println("Opening Task executed at: " + System.currentTimeMillis()); queueService.startBiz(); - }, cronExpression); + }, openCronExpression)); + + taskRegistrar.scheduleCronTask(new CronTask(() -> { + System.out.println("Close Task executed at: " + System.currentTimeMillis()); + queueService.closeBiz(); + }, closeCronExpression)); + + taskRegistrar.scheduleCronTask(new CronTask(() -> { + System.out.println("Room Reset Task executed at: " + System.currentTimeMillis()); + roomService.resetRoom(); + }, roomResetCronExpression)); } } -- Gitblit v1.9.3