Browse Source

定时器任务

guozx 3 years ago
parent
commit
95cc0d5dec

+ 5 - 1
application-task/src/main/java/com/jihengbel/intelligent/applicationtask/init/FirstRemindJob.java

@@ -29,7 +29,11 @@ public class FirstRemindJob implements Job {
     @Override
     public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
         ConcurrentMap<String, Object> paramMap = (ConcurrentMap<String, Object>) jobExecutionContext.getJobDetail().getJobDataMap().get(QuartzManager.JOB_PARAM_NAME);
-        createTask(paramMap);
+        try {
+            createTask(paramMap);// 执行任务
+        } catch (Throwable e) {
+            e.printStackTrace();
+        }
     }
 
     /**

+ 5 - 1
application-task/src/main/java/com/jihengbel/intelligent/applicationtask/init/FirstTaskJob.java

@@ -30,7 +30,11 @@ public class FirstTaskJob implements Job {
     @Override
     public void execute(JobExecutionContext context) throws JobExecutionException {
         ConcurrentMap<String, Object> paramMap = (ConcurrentMap<String, Object>) context.getJobDetail().getJobDataMap().get(QuartzManager.JOB_PARAM_NAME);
-        createTask(paramMap);// 执行任务
+        try {
+            createTask(paramMap);// 执行任务
+        } catch (Throwable e) {
+            e.printStackTrace();
+        }
     }
 
     /**

+ 5 - 1
application-task/src/main/java/com/jihengbel/intelligent/applicationtask/init/OnsiteRemindJob.java

@@ -27,7 +27,11 @@ public class OnsiteRemindJob implements Job {
     @Override
     public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
         ConcurrentMap<String, Object> paramMap = (ConcurrentMap<String, Object>) jobExecutionContext.getJobDetail().getJobDataMap().get(QuartzManager.JOB_PARAM_NAME);
-        createTask(paramMap);
+        try {
+            createTask(paramMap);// 执行任务
+        } catch (Throwable e) {
+            e.printStackTrace();
+        }
     }
 
     /**

+ 38 - 31
application-task/src/main/java/com/jihengbel/intelligent/applicationtask/init/OnsiteTaskJob.java

@@ -27,27 +27,33 @@ import java.util.concurrent.FutureTask;
 @DisallowConcurrentExecution
 public class OnsiteTaskJob implements Job {
     private static Logger log = LoggerFactory.getLogger(OnsiteTaskJob.class);
+
     @Override
     public void execute(JobExecutionContext context) throws JobExecutionException {
-        ConcurrentMap<String,Object> paramMap=(ConcurrentMap<String,Object>)context.getJobDetail().getJobDataMap().get(QuartzManager.JOB_PARAM_NAME);
-        createTask(paramMap);// 执行任务
+        ConcurrentMap<String, Object> paramMap = (ConcurrentMap<String, Object>) context.getJobDetail().getJobDataMap().get(QuartzManager.JOB_PARAM_NAME);
+        try {
+            createTask(paramMap);// 执行任务
+        } catch (Throwable e) {
+            e.printStackTrace();
+        }
     }
 
     /**
      * 创建Task主方法
+     *
      * @param paramMap
      */
-    public void createTask(ConcurrentMap<String,Object> paramMap)  {
-        Integer result=0;//没什么意义只是为了不出现整体并行
-        List< FutureTask<Integer>> tasks=new ArrayList<>();
-        tasks.add( getDayFutureTask(paramMap));
-        tasks.add( getWeekFutureTask(paramMap));
-        tasks.add( getMonthFutureTask(paramMap));
-        try{
-            for(FutureTask<Integer> t:tasks){
+    public void createTask(ConcurrentMap<String, Object> paramMap) {
+        Integer result = 0;//没什么意义只是为了不出现整体并行
+        List<FutureTask<Integer>> tasks = new ArrayList<>();
+        tasks.add(getDayFutureTask(paramMap));
+        tasks.add(getWeekFutureTask(paramMap));
+        tasks.add(getMonthFutureTask(paramMap));
+        try {
+            for (FutureTask<Integer> t : tasks) {
                 t.get();
             }//等等所有线程结束
-        }catch (Throwable e){
+        } catch (Throwable e) {
             e.printStackTrace();
         }
 
@@ -55,13 +61,14 @@ public class OnsiteTaskJob implements Job {
 
     /**
      * day
+     *
      * @param paramMap
      * @return
      */
     private FutureTask<Integer> getDayFutureTask(ConcurrentMap<String, Object> paramMap) {
         HashMap param = new HashMap();
-        param.put("type_flag",0);
-        FutureTask<Integer> dayTask = new FutureTask<Integer>(new addTask(paramMap,param));
+        param.put("type_flag", 0);
+        FutureTask<Integer> dayTask = new FutureTask<Integer>(new addTask(paramMap, param));
         Thread thread = new Thread(dayTask);
         thread.start();  //开启线程
         return dayTask;
@@ -69,14 +76,15 @@ public class OnsiteTaskJob implements Job {
 
     /**
      * week
+     *
      * @param paramMap
      * @return
      */
     private FutureTask<Integer> getWeekFutureTask(ConcurrentMap<String, Object> paramMap) {
         HashMap param = new HashMap();
-        param.put("type_flag",1);
-        param.put("week_day",CommonUtil.getWeekOfDate(new Date()));
-        FutureTask<Integer> weekTask = new FutureTask<Integer>(new addTask(paramMap,param));
+        param.put("type_flag", 1);
+        param.put("week_day", CommonUtil.getWeekOfDate(new Date()));
+        FutureTask<Integer> weekTask = new FutureTask<Integer>(new addTask(paramMap, param));
         Thread thread = new Thread(weekTask);
         thread.start();  //开启线程
         return weekTask;
@@ -84,47 +92,47 @@ public class OnsiteTaskJob implements Job {
 
     /**
      * month
+     *
      * @param paramMap
      * @return
      */
     private FutureTask<Integer> getMonthFutureTask(ConcurrentMap<String, Object> paramMap) {
         HashMap param = new HashMap();
-        param.put("type_flag",2);
-        param.put("month_day",CommonUtil.getMonthOfDate(new Date()));
-        FutureTask<Integer> monthTask = new FutureTask<Integer>(new addTask(paramMap,param));
+        param.put("type_flag", 2);
+        param.put("month_day", CommonUtil.getMonthOfDate(new Date()));
+        FutureTask<Integer> monthTask = new FutureTask<Integer>(new addTask(paramMap, param));
         Thread thread = new Thread(monthTask);
         thread.start();  //开启线程
         return monthTask;
     }
 
 
-
     /**
      * 生产任务
      */
-    public  class addTask implements Callable<Integer> {
+    public class addTask implements Callable<Integer> {
 
         private ConcurrentMap<String, Object> paramMap;
         private HashMap paramQuery;
 
 
-        public addTask(ConcurrentMap<String, Object> paramMap,HashMap paramQuery) {
+        public addTask(ConcurrentMap<String, Object> paramMap, HashMap paramQuery) {
             this.paramMap = paramMap;
-            this.paramQuery= paramQuery;
+            this.paramQuery = paramQuery;
         }
 
         @Override
         public Integer call() throws Exception {
-            OnsiteTaskService onsiteTaskService=(OnsiteTaskService)paramMap.get("onsiteTaskService");
-            String td= CommonUtil.getDateStr(new Date(),"yyyy-MM-dd");
-            List<OnsiteCalendar>  cals=onsiteTaskService.getCalenderOnsitesForType(paramQuery);
-            for(OnsiteCalendar cal:cals){
-                try{
-                    OnsiteTask task=new OnsiteTask();
+            OnsiteTaskService onsiteTaskService = (OnsiteTaskService) paramMap.get("onsiteTaskService");
+            String td = CommonUtil.getDateStr(new Date(), "yyyy-MM-dd");
+            List<OnsiteCalendar> cals = onsiteTaskService.getCalenderOnsitesForType(paramQuery);
+            for (OnsiteCalendar cal : cals) {
+                try {
+                    OnsiteTask task = new OnsiteTask();
                     task.setTask_time(td);
                     task.setOnsite_calendar_id(cal.getId());
                     onsiteTaskService.insertOnsiteTask(task);
-                }catch (Throwable e){
+                } catch (Throwable e) {
                     log.error(e.getStackTrace().toString());
                 }
 
@@ -134,5 +142,4 @@ public class OnsiteTaskJob implements Job {
     }
 
 
-
 }

+ 34 - 0
application-task/src/main/resources/application-test.properties

@@ -0,0 +1,34 @@
+# 设置端口
+server.port=8099
+server.servlet.context-path=/task/
+# 数据库配置
+spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
+spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
+spring.datasource.url= jdbc:mysql://39.100.230.190:8092/crocodile?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
+spring.datasource.username=root
+spring.datasource.password=Jh@Jh2019!
+# druid 配置
+spring.datasource.druid.initial-size=5
+spring.datasource.druid.max-active=20
+spring.datasource.druid.min-idle=5
+spring.datasource.druid.max-wait=60000
+spring.datasource.druid.pool-prepared-statements=true
+spring.datasource.druid.max-pool-prepared-statement-per-connection-size=20
+spring.datasource.druid.max-open-prepared-statements=20
+spring.datasource.druid.validation-query=SELECT 1
+spring.datasource.druid.validation-query-timeout=30000
+spring.datasource.druid.test-on-borrow=true
+spring.datasource.druid.test-on-return=false
+spring.datasource.druid.test-while-idle=false
+
+mybatis.mapperLocations=classpath:mappers/*.xml
+mybatis.config-locations=conf/mybatis-config.xml
+
+#每日执行job时间 每日2点用于执行onsite任务的生成
+onsite.task.cron=0 */5 * * * ? 
+#onsite 工作提醒
+onsite.remind.work.cron=0 */5 * * * ? 
+#每日执行job时间 每日2点用于执行onsite任务的生成
+first.task.cron=0 */5 * * * ? 
+#onsite 工作提醒
+first.remind.work.cron=0 */5 * * * ? 

+ 34 - 0
application-task/src/main/resources/application-uat.properties

@@ -0,0 +1,34 @@
+# 设置端口
+server.port=8099
+server.servlet.context-path=/task/
+# 数据库配置
+spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
+spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
+spring.datasource.url= jdbc:mysql://39.100.230.190:8092/crocodile?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
+spring.datasource.username=root
+spring.datasource.password=Jh@Jh2019!
+# druid 配置
+spring.datasource.druid.initial-size=5
+spring.datasource.druid.max-active=20
+spring.datasource.druid.min-idle=5
+spring.datasource.druid.max-wait=60000
+spring.datasource.druid.pool-prepared-statements=true
+spring.datasource.druid.max-pool-prepared-statement-per-connection-size=20
+spring.datasource.druid.max-open-prepared-statements=20
+spring.datasource.druid.validation-query=SELECT 1
+spring.datasource.druid.validation-query-timeout=30000
+spring.datasource.druid.test-on-borrow=true
+spring.datasource.druid.test-on-return=false
+spring.datasource.druid.test-while-idle=false
+
+mybatis.mapperLocations=classpath:mappers/*.xml
+mybatis.config-locations=conf/mybatis-config.xml
+
+#每日执行job时间 每日2点用于执行onsite任务的生成
+onsite.task.cron=0 0 2 * * ?
+#onsite 工作提醒
+onsite.remind.work.cron=0 */5 * * * ? 
+#每日执行job时间 每日2点用于执行onsite任务的生成
+first.task.cron=0 0 2 * * ?
+#onsite 工作提醒
+first.remind.work.cron=0 */5 * * * ? 

+ 1 - 33
application-task/src/main/resources/application.properties

@@ -1,34 +1,2 @@
-# 设置端口
-server.port=8088
-server.servlet.context-path=/task/
-# 数据库配置
-spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
-spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
-spring.datasource.url= jdbc:mysql://39.100.230.190:8092/crocodile?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
-spring.datasource.username=root
-spring.datasource.password=Jh@Jh2019!
-# druid 配置
-spring.datasource.druid.initial-size=5
-spring.datasource.druid.max-active=20
-spring.datasource.druid.min-idle=5
-spring.datasource.druid.max-wait=60000
-spring.datasource.druid.pool-prepared-statements=true
-spring.datasource.druid.max-pool-prepared-statement-per-connection-size=20
-spring.datasource.druid.max-open-prepared-statements=20
-spring.datasource.druid.validation-query=SELECT 1
-spring.datasource.druid.validation-query-timeout=30000
-spring.datasource.druid.test-on-borrow=true
-spring.datasource.druid.test-on-return=false
-spring.datasource.druid.test-while-idle=false
+spring.profiles.active=test
 
-mybatis.mapperLocations=classpath:mappers/*.xml
-mybatis.config-locations=conf/mybatis-config.xml
-
-#每日执行job时间 每日2点用于执行onsite任务的生成
-onsite.task.cron=0 0 2 * * ?
-#onsite 工作提醒
-onsite.remind.work.cron=0 */5 * * * ? 
-#每日执行job时间 每日2点用于执行onsite任务的生成
-first.task.cron=0 0 2 * * ?
-#onsite 工作提醒
-first.remind.work.cron=0 */5 * * * ?