From 569e5370f206d6057423f539b6de4741cfa5cf5c Mon Sep 17 00:00:00 2001 From: zengwh <81383286@qq.com> Date: Mon, 2 Nov 2020 17:54:05 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E4=BB=BB=E5=8A=A1=E8=B0=83?= =?UTF-8?q?=E5=BA=A6=E4=B8=BA=E5=8A=A8=E6=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/emr/config/CronValueConfig.java | 10 +--- .../java/com/emr/config/ScheduleConfig.java | 18 +++++++ .../com/emr/controller/WebServiceLoad.java | 21 +++++--- .../emr/quart/DynamicScheduleTaskSecond.java | 52 +++++++++++++++++++ src/main/java/com/emr/quart/Task1.java | 3 +- .../service/ipml/EmrOvertimeSetService.java | 8 ++- src/main/resources/config/config.properties | 10 ++-- src/main/resources/config/jdbc.properties | 12 ++--- src/main/webapp/WEB-INF/views/index.jsp | 2 +- 9 files changed, 106 insertions(+), 30 deletions(-) create mode 100644 src/main/java/com/emr/config/ScheduleConfig.java create mode 100644 src/main/java/com/emr/quart/DynamicScheduleTaskSecond.java diff --git a/src/main/java/com/emr/config/CronValueConfig.java b/src/main/java/com/emr/config/CronValueConfig.java index 0c61fc5..772ae82 100644 --- a/src/main/java/com/emr/config/CronValueConfig.java +++ b/src/main/java/com/emr/config/CronValueConfig.java @@ -1,11 +1,5 @@ package com.emr.config; -import com.emr.dao.EmrOvertimeSetMapper; -import com.emr.dao.Emr_Commom_SetMapper; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; - /** * @ProjectName: * @Description: @@ -18,7 +12,7 @@ import org.springframework.context.annotation.Configuration; * @UpdateRemark: 更新说明 * @Version: 1.0 */ -@Configuration +/*@Configuration public class CronValueConfig { @Autowired private EmrOvertimeSetMapper overtimeSetMapper; @@ -28,4 +22,4 @@ public class CronValueConfig { String remindTime = overtimeSetMapper.selectByPrimaryKey(1).getRemindTime(); return remindTime; } -} +}*/ diff --git a/src/main/java/com/emr/config/ScheduleConfig.java b/src/main/java/com/emr/config/ScheduleConfig.java new file mode 100644 index 0000000..a868938 --- /dev/null +++ b/src/main/java/com/emr/config/ScheduleConfig.java @@ -0,0 +1,18 @@ +package com.emr.config; + +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.scheduling.concurrent.ThreadPoolTaskScheduler; + +/** + * 任务调度线程池配置 + * @author + * @date 20190127 + */ +@Configuration +public class ScheduleConfig { + @Bean + public ThreadPoolTaskScheduler threadPoolTaskScheduler(){ + return new ThreadPoolTaskScheduler(); + } +} \ No newline at end of file diff --git a/src/main/java/com/emr/controller/WebServiceLoad.java b/src/main/java/com/emr/controller/WebServiceLoad.java index f28d77f..14ee9f2 100644 --- a/src/main/java/com/emr/controller/WebServiceLoad.java +++ b/src/main/java/com/emr/controller/WebServiceLoad.java @@ -1,8 +1,9 @@ package com.emr.controller; -import com.emr.util.PropertiesUtils; -import org.apache.cxf.endpoint.Client; -import org.springframework.beans.factory.annotation.Value; +import com.emr.dao.EmrOvertimeSetMapper; +import com.emr.entity.EmrOvertimeSet; +import com.emr.quart.DynamicScheduleTaskSecond; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import javax.annotation.PostConstruct; @@ -21,10 +22,16 @@ import javax.annotation.PostConstruct; */ @Component public class WebServiceLoad { + @Autowired + private DynamicScheduleTaskSecond dynamicScheduleTaskSecond; + @Autowired + private EmrOvertimeSetMapper overtimeSetMapper; @PostConstruct public void contextInitialized() { - /*new Thread(() -> { - String token = "ORsaVDUBE1RFRFRETE5BR05ERVQ3JyBURkRGRA=="; + new Thread(() -> { + EmrOvertimeSet emrOvertimeSet = overtimeSetMapper.selectByPrimaryKey(1); + dynamicScheduleTaskSecond.setCron(emrOvertimeSet.getRemindTime()); + /*String token = "ORsaVDUBE1RFRFRETE5BR05ERVQ3JyBURkRGRA=="; String POWER_IP = PropertiesUtils.getProperty("POWER_IP"); String POWER_PORT = PropertiesUtils.getProperty("POWER_PORT"); //创建连接工厂 @@ -41,7 +48,7 @@ public class WebServiceLoad { if(null != client) { client.destroy(); } - } - }).start();*/ + }*/ + }).start(); } } diff --git a/src/main/java/com/emr/quart/DynamicScheduleTaskSecond.java b/src/main/java/com/emr/quart/DynamicScheduleTaskSecond.java new file mode 100644 index 0000000..131a9f2 --- /dev/null +++ b/src/main/java/com/emr/quart/DynamicScheduleTaskSecond.java @@ -0,0 +1,52 @@ +package com.emr.quart; + + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.scheduling.Trigger; +import org.springframework.scheduling.TriggerContext; +import org.springframework.scheduling.concurrent.ThreadPoolTaskScheduler; +import org.springframework.scheduling.support.CronTrigger; +import org.springframework.stereotype.Component; + +import java.util.Date; +import java.util.concurrent.ScheduledFuture; + + +@Component +public class DynamicScheduleTaskSecond { + @Autowired + private ThreadPoolTaskScheduler threadPoolTaskScheduler; + @Autowired + private Task1 scheduleExport; + private ScheduledFuture future; + + public void setCron(String cron) { + stopCron(); + future = threadPoolTaskScheduler.schedule(new Runnable() { + @Override + public void run() { + try { + scheduleExport.task1();// 执行任务 + } catch (Exception e) { + e.printStackTrace(); + } + } + }, new Trigger() { + @Override + public Date nextExecutionTime(TriggerContext triggerContext) { + if ("".equals(cron) || cron == null) { + return null; + } + CronTrigger trigger = new CronTrigger(cron);// 定时任务触发,可修改定时任务的执行周期 + Date nextExecDate = trigger.nextExecutionTime(triggerContext); + return nextExecDate; + } + }); + } + + public void stopCron() { + if (future != null) { + future.cancel(true);//取消任务调度 + } + } +} diff --git a/src/main/java/com/emr/quart/Task1.java b/src/main/java/com/emr/quart/Task1.java index 21365ab..d6c5383 100644 --- a/src/main/java/com/emr/quart/Task1.java +++ b/src/main/java/com/emr/quart/Task1.java @@ -19,7 +19,6 @@ import org.apache.log4j.Logger; import org.apache.shiro.util.CollectionUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; -import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; import java.lang.reflect.Field; @@ -56,7 +55,7 @@ public class Task1 { private CommomService commomService; @Autowired private ArchiveRemindDeptUserInfoMapper remindDeptUserInfoMapper; - @Scheduled(cron="#{@getCronValue}") + //@Scheduled(cron="#{@getCronValue}") public void task1(){ try { long start = System.currentTimeMillis(); diff --git a/src/main/java/com/emr/service/ipml/EmrOvertimeSetService.java b/src/main/java/com/emr/service/ipml/EmrOvertimeSetService.java index 09b63f5..e91cf06 100644 --- a/src/main/java/com/emr/service/ipml/EmrOvertimeSetService.java +++ b/src/main/java/com/emr/service/ipml/EmrOvertimeSetService.java @@ -8,6 +8,7 @@ import com.emr.entity.ArchiveRemindDeptUser; import com.emr.entity.ArchiveRemindcancleDept; import com.emr.entity.EmrOvertimeSet; import com.emr.entity.Emr_Dictionary; +import com.emr.quart.DynamicScheduleTaskSecond; import com.emr.service.Emr_DictionaryService; import com.emr.vo.CommomTree; import com.emr.vo.User; @@ -17,7 +18,8 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import java.util.*; +import java.util.ArrayList; +import java.util.List; /** * @ProjectName: @@ -46,6 +48,8 @@ public class EmrOvertimeSetService { private ArchiveRemindDeptUserMapper remindDeptUserMapper; @Autowired private CommomService commomService; + @Autowired + private DynamicScheduleTaskSecond dynamicScheduleTaskSecond; /** * 根据主键查询 * @return @@ -60,6 +64,8 @@ public class EmrOvertimeSetService { */ public void updateOverTimeSet(EmrOvertimeSet overtimeSet){ overtimeSetMapper.updateByPrimaryKeySelective(overtimeSet); + //重新执行任务 + dynamicScheduleTaskSecond.setCron(overtimeSet.getRemindTime()); } /** diff --git a/src/main/resources/config/config.properties b/src/main/resources/config/config.properties index ab4c711..30ef18f 100644 --- a/src/main/resources/config/config.properties +++ b/src/main/resources/config/config.properties @@ -1,9 +1,9 @@ #power\u6743\u9650\u7CFB\u7EDFIP\u548C\u7AEF\u53E3 -POWER_IP = localhost -POWER_PORT = 8080 +#POWER_IP = localhost +#POWER_PORT = 8080 -#POWER_IP = 200.100.104.40 -#POWER_PORT = 8081 +POWER_IP = 200.100.104.40 +POWER_PORT = 8081 #power\u6743\u9650\u7CFB\u7EDF\u7684\u670D\u52A1\u5668\u5730\u5740\u5934 POWER_URLHEAD = http://${POWER_IP}:${POWER_PORT}/power @@ -52,7 +52,7 @@ allAddortIds = 00000000 nurseAssortIds = 'C70E8C427A3648B79BE80798C08F4D12','85DAE73A87D047D28C222E878C78C670' #\u7528\u4E8E\u8D85\u671F\u901A\u77E5\uFF0C\u53EA\u901A\u77E5\u8BE5\u65E5\u671F\u4EE5\u540E\u7684\u51FA\u9662\u8D85\u671F\u7684\u8BB0\u5F55 -overDateSet = 2020-07-26 +overDateSet = 2020-10-26 #\u5404\u5BA1\u6838\u89D2\u8272\u7528\u6237id 1\uFF1A\u533B\u751F\uFF1B2\uFF1A\u62A4\u58EB\uFF1B3\uFF1A\u75C5\u6848\u5BA4\u4EBA\u5458\uFF1B5\uFF1A\u533B\u751F\u8D28\u63A7\u5458\uFF1B6\uFF1A\u79D1\u4E3B\u4EFB\uFF1B7\uFF1A\u62A4\u58EB\u957F\uFF1B8\uFF1A\u62A4\u58EB\u8D28\u63A7\u5458 diff --git a/src/main/resources/config/jdbc.properties b/src/main/resources/config/jdbc.properties index 8d5f5b2..49cce0a 100644 --- a/src/main/resources/config/jdbc.properties +++ b/src/main/resources/config/jdbc.properties @@ -1,11 +1,11 @@ jdbc.driver=com.microsoft.sqlserver.jdbc.SQLServerDriver -jdbc.url=jdbc\:sqlserver\://localhost:1433;databaseName=gm_record -jdbc.username=sa -jdbc.password=docus702 - -#jdbc.url=jdbc\:sqlserver\://localhost:1433;databaseName=emr_record +#jdbc.url=jdbc\:sqlserver\://localhost:1433;databaseName=gm_record #jdbc.username=sa -#jdbc.password=AbcXyz123 +#jdbc.password=docus702 + +jdbc.url=jdbc\:sqlserver\://200.100.104.40:1433;databaseName=emr_record +jdbc.username=sa +jdbc.password=AbcXyz123 filters=stat maxWait=60000 diff --git a/src/main/webapp/WEB-INF/views/index.jsp b/src/main/webapp/WEB-INF/views/index.jsp index 30f31af..b541371 100644 --- a/src/main/webapp/WEB-INF/views/index.jsp +++ b/src/main/webapp/WEB-INF/views/index.jsp @@ -354,7 +354,7 @@