Pārlūkot izejas kodu

定时任务修改

yuanhao 3 gadi atpakaļ
vecāks
revīzija
078fc74bb6

+ 0 - 2
in-cloud-ui/src/views/quartz/quartzInfo/index.vue

@@ -83,8 +83,6 @@
         prop="cronExpression"
         label="cronb表达式"
       />
-      <el-table-column show-overflow-tooltip prop="description" label="描述" />
-
       <el-table-column show-overflow-tooltip label="操作" width="180px">
         <template #default="{ row }">
           <el-button type="text" @click="handleEdit(row)">

+ 7 - 3
in-cloud-ui/src/views/record/index.vue

@@ -100,7 +100,7 @@
       <el-table-column show-overflow-tooltip label="状态" prop="stateContent" />
       <el-table-column
         show-overflow-tooltip
-        label="时间"
+        label="标记时间"
         prop="time"
         :formatter="formatDate"
       />
@@ -187,8 +187,12 @@
       },
       async fetchData() {
         this.listLoading = true
-        this.searchForm.startTime = this.times[0]
-        this.searchForm.endTime = this.times[1]
+        this.searchForm.startTime = null
+        this.searchForm.endTime = null
+        if(this.times !=null){
+          this.searchForm.startTime = this.times[0]
+          this.searchForm.endTime = this.times[1]
+        }
         fetchList(
           Object.assign(
             {

+ 23 - 4
in-cloud/src/main/java/com/jiayue/insu/incloud/job/data/pull/PullInitDataJob.java

@@ -1,7 +1,12 @@
 package com.jiayue.insu.incloud.job.data.pull;
 
+import cn.hutool.core.date.LocalDateTimeUtil;
+import com.jiayue.insu.incloud.constants.CommonStant;
+import com.jiayue.insu.incloud.constants.enums.StatusEnum;
+import com.jiayue.insu.incloud.entity.Record;
 import com.jiayue.insu.incloud.entity.Station;
 import com.jiayue.insu.incloud.pulldata.PullInitData;
+import com.jiayue.insu.incloud.service.RecordService;
 import com.jiayue.insu.incloud.service.StationService;
 import org.quartz.Job;
 import org.quartz.JobDataMap;
@@ -9,22 +14,36 @@ import org.quartz.JobExecutionContext;
 import org.quartz.JobExecutionException;
 import org.springframework.beans.factory.annotation.Autowired;
 
+import java.time.LocalDateTime;
+
 public class PullInitDataJob implements Job {
 
     @Autowired
     private PullInitData pullInitData;
-
     @Autowired
-     private StationService stationService;
+    private StationService stationService;
+    @Autowired
+    private RecordService recordService;
+
     @Override
     public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
         String code = jobExecutionContext.getTrigger().getJobKey().getName();
         String[] split = code.split("-");
-        if(split!=null && split.length>0) {
+        if (split != null && split.length > 0) {
             String stationCode = split[0];
             Station one = stationService.findByStationCode(stationCode);
             if (one != null) {
-                pullInitData.pullDQAndNWPData(one);
+                //查询是否有今天成功记录 (为提高稳定性,该定时任务采取在规定时间段内 重复循环执行的定时策略,故:需要查询是否存在成功记录)
+                Record successRecord = recordService.findTimeAndTypeAndStateAndStation(
+                        LocalDateTimeUtil.beginOfDay(LocalDateTime.now()),
+                        CommonStant.RECORD_TYPE_PULL_INIT,
+                        StatusEnum.SUCCESS.getCode(), stationCode);
+
+                //没有成功记录进行业务
+                if (successRecord == null) {
+                    pullInitData.pullDQAndNWPData(one);
+                }
+
             }
         }
 

+ 23 - 4
in-cloud/src/main/java/com/jiayue/insu/incloud/job/data/pull/QNHLPullCorrectDataJob.java

@@ -1,21 +1,31 @@
 package com.jiayue.insu.incloud.job.data.pull;
 
+import cn.hutool.core.date.LocalDateTimeUtil;
+import com.jiayue.insu.incloud.constants.CommonStant;
+import com.jiayue.insu.incloud.constants.enums.QNHLEnum;
+import com.jiayue.insu.incloud.constants.enums.StatusEnum;
+import com.jiayue.insu.incloud.entity.Record;
 import com.jiayue.insu.incloud.entity.Station;
 import com.jiayue.insu.incloud.pulldata.PullCorrectDataForQNHL;
 import com.jiayue.insu.incloud.pulldata.PullInitData;
+import com.jiayue.insu.incloud.service.RecordService;
 import com.jiayue.insu.incloud.service.StationService;
 import org.quartz.Job;
 import org.quartz.JobExecutionContext;
 import org.quartz.JobExecutionException;
 import org.springframework.beans.factory.annotation.Autowired;
 
-public class QNHLPullCorrectDataJob implements Job {
+import java.time.LocalDateTime;
 
+public class QNHLPullCorrectDataJob implements Job {
 
     @Autowired
-    PullCorrectDataForQNHL pullCorrectDataForQNHL;
+    private PullCorrectDataForQNHL pullCorrectDataForQNHL;
+    @Autowired
+    private StationService stationService;
     @Autowired
-     private StationService stationService;
+    private RecordService recordService;
+
     @Override
     public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
         String code = jobExecutionContext.getTrigger().getJobKey().getName();
@@ -24,7 +34,16 @@ public class QNHLPullCorrectDataJob implements Job {
             String stationCode = split[0];
             Station one = stationService.findByStationCode(stationCode);
             if (one != null) {
-                pullCorrectDataForQNHL.pullDQAndNWPData(one);
+                //查询是否有今天成功记录 (为提高稳定性,该定时任务采取在规定时间段内 重复循环执行的定时策略,故:需要查询是否存在成功记录)
+                Record successRecord = recordService.findTimeAndTypeAndStateAndStation(
+                        LocalDateTimeUtil.beginOfDay(LocalDateTime.now()),
+                        CommonStant.RECORD_TYPE_PULL_CORRECT,
+                        QNHLEnum.REQUEST_SUCCESS.getSign(), stationCode);
+                //没有成功记录进行业务
+                if(successRecord == null){
+                    pullCorrectDataForQNHL.pullDQAndNWPData(one);
+                }
+
             }
         }
 

+ 19 - 1
in-cloud/src/main/java/com/jiayue/insu/incloud/job/data/push/QNHLPushInitDqData.java

@@ -1,12 +1,20 @@
 package com.jiayue.insu.incloud.job.data.push;
 
+import cn.hutool.core.date.LocalDateTimeUtil;
+import com.jiayue.insu.incloud.constants.CommonStant;
+import com.jiayue.insu.incloud.constants.enums.QNHLEnum;
+import com.jiayue.insu.incloud.entity.Record;
 import com.jiayue.insu.incloud.entity.Station;
 import com.jiayue.insu.incloud.pushdata.PushDataForQNHL;
+import com.jiayue.insu.incloud.service.RecordService;
 import com.jiayue.insu.incloud.service.StationService;
 import org.quartz.Job;
 import org.quartz.JobExecutionContext;
 import org.quartz.JobExecutionException;
 import org.springframework.beans.factory.annotation.Autowired;
+
+import java.time.LocalDateTime;
+
 /**
  * 清能推送原始短期数据定时任务
  *
@@ -20,6 +28,8 @@ public class QNHLPushInitDqData implements Job {
     private PushDataForQNHL pushDataForQNHL;
     @Autowired
     private StationService stationService;
+    @Autowired
+    private RecordService recordService;
     @Override
     public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
         String code = jobExecutionContext.getTrigger().getJobKey().getName();
@@ -28,7 +38,15 @@ public class QNHLPushInitDqData implements Job {
             String stationCode = split[0];
             Station one = stationService.findByStationCode(stationCode);
             if (one != null) {
-                pushDataForQNHL.pushDQAndNWPData(one);
+                //查询是否有今天成功记录 (为提高稳定性,该定时任务采取在规定时间段内 重复循环执行的定时策略,故:需要查询是否存在成功记录)
+                Record successRecord = recordService.findTimeAndTypeAndStateAndStation(
+                        LocalDateTimeUtil.beginOfDay(LocalDateTime.now()),
+                        CommonStant.RECORD_TYPE_PUSH_INIT,
+                        QNHLEnum.REQUEST_SUCCESS.getSign(), stationCode);
+                //没有成功记录进行业务
+                if(successRecord == null) {
+                    pushDataForQNHL.pushDQAndNWPData(one);
+                }
             }
         }
 

+ 4 - 0
in-cloud/src/main/java/com/jiayue/insu/incloud/service/RecordService.java

@@ -3,7 +3,11 @@ package com.jiayue.insu.incloud.service;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.jiayue.insu.incloud.entity.Record;
 
+import java.time.LocalDateTime;
+
 public interface RecordService extends IService<Record> {
 
+    Record findTimeAndTypeAndStateAndStation(LocalDateTime time,String type,String state,String station);
+
 
 }

+ 13 - 0
in-cloud/src/main/java/com/jiayue/insu/incloud/service/impl/RecordServiceImpl.java

@@ -1,5 +1,6 @@
 package com.jiayue.insu.incloud.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.jiayue.insu.incloud.entity.Quartz;
 import com.jiayue.insu.incloud.entity.Record;
@@ -9,8 +10,20 @@ import com.jiayue.insu.incloud.service.QuartzService;
 import com.jiayue.insu.incloud.service.RecordService;
 import org.springframework.stereotype.Service;
 
+import java.time.LocalDateTime;
+
 @Service
 public class RecordServiceImpl extends ServiceImpl<RecordMapper, Record> implements RecordService {
 
 
+    @Override
+    public Record findTimeAndTypeAndStateAndStation(LocalDateTime time, String type, String state,String station) {
+        LambdaQueryWrapper<Record> lambdaQueryWrapper = new LambdaQueryWrapper<>();
+        lambdaQueryWrapper.eq(Record::getTime,time);
+        lambdaQueryWrapper.eq(Record::getType,type);
+        lambdaQueryWrapper.eq(Record::getState,state);
+        lambdaQueryWrapper.eq(Record::getStationCode,station);
+
+        return this.getOne(lambdaQueryWrapper);
+    }
 }

+ 2 - 2
in-cloud/src/main/resources/bootstrap.yml

@@ -19,11 +19,11 @@ spring:
             instanceId: AUTO
           threadPool:
             # 线程数量
-            threadCount: 5
+            threadCount: 20
             # 线程优先级
             threadPriority: 5
             # 线程池中线程名称的前缀
-            threadNamePrefix: test-thread
+            threadNamePrefix: cloud-quartz-thread
             # 加载任务代码的ClassLoader是否从外部继承
             threadsInheritContextClassLoaderOfInitializingThread: true
           jobStore: