Преглед изворни кода

同步学校信息定时任务

caozixuan пре 4 година
родитељ
комит
183e263360

+ 5 - 1
distributed-print-task/src/main/java/com/qmth/distributed/print/task/enums/JobEnum.java

@@ -13,7 +13,11 @@ public enum JobEnum {
 
     TEST_JOB("测试job"),
 
-    TEST_JOB_GROUP("测试job组");
+    TEST_JOB_GROUP("测试job组"),
+
+    Timed_SYNC_SCHOOL_JOB("学校信息同步定时任务"),
+
+    Timed_TASK_JOB_GROUP("定时任务job组");
 
     private String title;
 

+ 28 - 0
distributed-print-task/src/main/java/com/qmth/distributed/print/task/job/TimedSyncSchoolJob.java

@@ -0,0 +1,28 @@
+package com.qmth.distributed.print.task.job;
+
+import com.qmth.distributed.print.task.job.service.JobService;
+import org.quartz.JobExecutionContext;
+import org.quartz.JobExecutionException;
+import org.springframework.scheduling.quartz.QuartzJobBean;
+
+import javax.annotation.Resource;
+import java.io.IOException;
+
+/**
+ * @Description: 同步学校信息定时任务
+ * @Author: CaoZixuan
+ * @Date: 2021-04-19
+ */
+public class TimedSyncSchoolJob extends QuartzJobBean {
+    @Resource
+    JobService jobService;
+
+    @Override
+    protected void executeInternal(JobExecutionContext jobExecutionContext) throws JobExecutionException {
+        try {
+            jobService.updateSchoolInfo();
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+    }
+}

+ 8 - 1
distributed-print-task/src/main/java/com/qmth/distributed/print/task/job/service/JobService.java

@@ -1,6 +1,8 @@
 package com.qmth.distributed.print.task.job.service;
 
-/** 
+import java.io.IOException;
+
+/**
 * @Description: job service
 * @Param:  
 * @return:  
@@ -10,4 +12,9 @@ package com.qmth.distributed.print.task.job.service;
 public interface JobService {
 
     public void testJob();
+
+    /**
+     * 同步学校信息
+     */
+    void updateSchoolInfo() throws IOException;
 }

+ 9 - 0
distributed-print-task/src/main/java/com/qmth/distributed/print/task/job/service/impl/JobServiceImpl.java

@@ -1,6 +1,7 @@
 package com.qmth.distributed.print.task.job.service.impl;
 
 import com.qmth.distributed.print.business.service.CacheService;
+import com.qmth.distributed.print.business.service.OrgCenterDataDisposeService;
 import com.qmth.distributed.print.common.util.JacksonUtil;
 import com.qmth.distributed.print.task.job.service.JobService;
 import org.slf4j.Logger;
@@ -8,6 +9,7 @@ import org.slf4j.LoggerFactory;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
+import java.io.IOException;
 
 /**
  * @Description: job service impl
@@ -22,9 +24,16 @@ public class JobServiceImpl implements JobService {
 
     @Resource
     CacheService cacheService;
+    @Resource
+    OrgCenterDataDisposeService orgCenterDataDisposeService;
 
     @Override
     public void testJob() {
         log.info("testJob user info:{}", JacksonUtil.parseJson(cacheService.userCache(1L)));
     }
+
+    @Override
+    public void updateSchoolInfo() throws IOException {
+        orgCenterDataDisposeService.updateSchoolInfo();
+    }
 }

+ 18 - 2
distributed-print/src/main/java/com/qmth/distributed/print/start/StartRunning.java

@@ -2,12 +2,18 @@ package com.qmth.distributed.print.start;
 
 import com.qmth.distributed.print.business.service.OrgCenterDataDisposeService;
 import com.qmth.distributed.print.common.contant.SystemConstant;
+import com.qmth.distributed.print.task.enums.JobEnum;
+import com.qmth.distributed.print.task.job.TestJob;
+import com.qmth.distributed.print.task.job.TimedSyncSchoolJob;
+import com.qmth.distributed.print.task.service.QuartzService;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.boot.CommandLineRunner;
 import org.springframework.stereotype.Component;
 
 import javax.annotation.Resource;
+import java.util.HashMap;
+import java.util.Map;
 
 /**
  * @Description: 服务启动时初始化运行,哪个微服务模块需要则拿此模版去用
@@ -20,8 +26,8 @@ import javax.annotation.Resource;
 public class StartRunning implements CommandLineRunner {
     private final static Logger log = LoggerFactory.getLogger(StartRunning.class);
 
-//    @Resource
-//    QuartzService quartzService;
+    @Resource
+    QuartzService quartzService;
 
     @Resource
     private OrgCenterDataDisposeService orgCenterDataDisposeService;
@@ -39,6 +45,16 @@ public class StartRunning implements CommandLineRunner {
 //        quartzService.addJob(TestJob.class, JobEnum.TEST_JOB.name(), JobEnum.TEST_JOB_GROUP.name(), "0/10 * * * * ?", testJobMap);
 //        log.info("增加test job end");
 
+        log.info("增加学校信息同步定时任务 start");
+        Map schoolJobMap = new HashMap();
+        schoolJobMap.computeIfAbsent("name", v -> TimedSyncSchoolJob.class.getName());
+        quartzService.deleteJob(JobEnum.Timed_SYNC_SCHOOL_JOB.name(), JobEnum.Timed_TASK_JOB_GROUP.name());
+        // 每天0点定时任务
+        String jobTime = "0 0 0 * * ?";
+        quartzService.addJob(TimedSyncSchoolJob.class, JobEnum.Timed_SYNC_SCHOOL_JOB.name(), JobEnum.Timed_TASK_JOB_GROUP.name(), jobTime, schoolJobMap);
+        log.info("增加学校信息同步定时任务 end");
+
+
         log.info("服务器启动时执行 end");
     }
 }