From b2a0cb67e3a422c6cfae1845a499edd6f4b32e74 Mon Sep 17 00:00:00 2001
From: feiyu02 <risaku@163.com>
Date: 星期三, 08 十一月 2023 09:49:53 +0800
Subject: [PATCH] 1. 调整了定时任务的部分代码结构

---
 /dev/null                                                                                |   31 ----------
 src/main/java/com/flightfeather/monitor/scheduledtasks/TaskController.kt                 |   16 ++--
 src/main/java/com/flightfeather/monitor/scheduledtasks/dust/DustExceptionAnalysisTask.kt |   29 +++++++++
 src/main/java/com/flightfeather/monitor/scheduledtasks/dust/DustDailyAnalysisTask.kt     |   26 ++++++++
 src/main/java/com/flightfeather/monitor/scheduledtasks/dust/BaseDustTimingTask.kt        |   29 +++++++++
 src/main/java/com/flightfeather/monitor/scheduledtasks/dust/DustMonthlyAnalysisTask.kt   |   27 +++++++++
 6 files changed, 119 insertions(+), 39 deletions(-)

diff --git a/src/main/java/com/flightfeather/monitor/scheduledtasks/DustAnalysisTask.kt b/src/main/java/com/flightfeather/monitor/scheduledtasks/DustAnalysisTask.kt
deleted file mode 100644
index 6a2d142..0000000
--- a/src/main/java/com/flightfeather/monitor/scheduledtasks/DustAnalysisTask.kt
+++ /dev/null
@@ -1,71 +0,0 @@
-package com.flightfeather.monitor.scheduledtasks
-
-import com.flightfeather.monitor.analysis.dust.ExceptionAnalysisController
-import com.flightfeather.monitor.analysis.dust.StatisticAnalysisController
-import com.flightfeather.monitor.domain.ds1.entity.RequestTask
-import com.flightfeather.monitor.domain.ds1.repository.RequestTaskRep
-import org.springframework.stereotype.Component
-import java.time.LocalDateTime
-
-/**
- * 鎵皹鏁版嵁鍒嗘瀽浠诲姟
- */
-@Component
-class DustAnalysisTask(
-    private val statisticAnalysisController: StatisticAnalysisController,
-    private val exceptionAnalysisController: ExceptionAnalysisController,
-    private val requestTaskRep: RequestTaskRep,
-) : BaseTimingTask() {
-
-    // 浠诲姟鏄惁寤惰繜鎵ц
-    private var task1Delay = false
-    private var task2Delay = false
-    private var task3Delay = false
-
-    override val period: Long = 15
-
-    override fun execute(localtime: LocalDateTime) {
-        doTask(localtime)
-    }
-
-    override fun doTask(localtime: LocalDateTime) {
-        if (task1Delay || (localtime.hour == 8 && localtime.minute == 0)) {
-            // 鍒ゆ柇浠婃棩鐖彇浠诲姟鏄惁瀹屾垚
-            val task = requestTaskRep.findLatestTask(localtime)
-            task1Delay = isTaskDelay(task)
-            if (!task1Delay) {
-                log.info("寮傚父鍒嗘瀽鎵ц")
-                exceptionAnalysisController.init()
-                exceptionAnalysisController.autoRun()
-            }
-        }
-
-        if (task2Delay || (localtime.hour == 9 && localtime.minute == 0)) {
-            val task = requestTaskRep.findLatestTask(localtime)
-            task2Delay = isTaskDelay(task)
-            if (!task2Delay) {
-                log.info("鏃ュ垎鏋愭墽琛�")
-                statisticAnalysisController.autoRunDailyStatics()
-            }
-        }
-
-        if (task3Delay || (localtime.dayOfMonth == 1 && localtime.hour == 9 && localtime.minute == 0)) {
-            val task = requestTaskRep.findLatestTask(localtime)
-            task3Delay = isTaskDelay(task)
-            if (!task3Delay) {
-                log.info("鏈堝垎鏋愭墽琛�")
-                statisticAnalysisController.autoRunMonthlyStatics()
-            }
-        }
-    }
-
-    /**
-     * 褰撲换鍔″紑濮嬫墽琛屾椂锛屽垽鏂换鍔$姸鎬侊紝鍐冲畾鏄惁寤惰繜鎵ц
-     */
-    private fun isTaskDelay(task: RequestTask?): Boolean {
-        // 浠诲姟姝e湪鎵ц锛岃烦杩囨娆″垎鏋愶紝鍦ㄤ笅涓�鍛ㄦ湡缁х画鍒ゆ柇锛岀瓑寰呬换鍔″畬鎴愬悗杩涜鍒嗘瀽
-        return if (task == null || task.runningStatus) {
-            true
-        } else !task.success
-    }
-}
\ No newline at end of file
diff --git a/src/main/java/com/flightfeather/monitor/scheduledtasks/DustDailyStatisticAnalysisTask.kt b/src/main/java/com/flightfeather/monitor/scheduledtasks/DustDailyStatisticAnalysisTask.kt
deleted file mode 100644
index e7d6fad..0000000
--- a/src/main/java/com/flightfeather/monitor/scheduledtasks/DustDailyStatisticAnalysisTask.kt
+++ /dev/null
@@ -1,26 +0,0 @@
-package com.flightfeather.monitor.scheduledtasks
-
-import com.flightfeather.monitor.analysis.dust.StatisticAnalysisController
-import lombok.extern.slf4j.Slf4j
-import org.springframework.stereotype.Component
-import java.time.LocalDateTime
-
-@Component
-class DustDailyStatisticAnalysisTask(private val statisticAnalysisController: StatisticAnalysisController) :
-    BaseTimingTask() {
-
-    override val period: Long = 15
-
-    override fun execute(localtime: LocalDateTime) {
-//        println("鏃ュ垎鏋愯疆璇�")
-//        println(localtime)
-        if (localtime.hour == 9 && localtime.minute == 0) {
-            doTask(localtime)
-        }
-    }
-
-    override fun doTask(localtime: LocalDateTime) {
-        log.info("鏃ュ垎鏋愭墽琛�")
-        statisticAnalysisController.autoRunDailyStatics()
-    }
-}
\ No newline at end of file
diff --git a/src/main/java/com/flightfeather/monitor/scheduledtasks/DustExceptionAnalysisTask.kt b/src/main/java/com/flightfeather/monitor/scheduledtasks/DustExceptionAnalysisTask.kt
deleted file mode 100644
index fe5472e..0000000
--- a/src/main/java/com/flightfeather/monitor/scheduledtasks/DustExceptionAnalysisTask.kt
+++ /dev/null
@@ -1,26 +0,0 @@
-package com.flightfeather.monitor.scheduledtasks
-
-import com.flightfeather.monitor.analysis.dust.ExceptionAnalysisController
-import org.springframework.stereotype.Component
-import java.time.LocalDateTime
-
-@Component
-class DustExceptionAnalysisTask(private val exceptionAnalysisController: ExceptionAnalysisController) :
-    BaseTimingTask() {
-
-    override val period: Long = 15
-
-    override fun execute(localtime: LocalDateTime) {
-//        println("寮傚父鍒嗘瀽杞")
-//        println(localtime)
-        if (localtime.hour == 8 && localtime.minute == 0) {
-            doTask(localtime)
-        }
-    }
-
-    override fun doTask(localtime: LocalDateTime) {
-        log.info("寮傚父鍒嗘瀽鎵ц")
-        exceptionAnalysisController.init()
-        exceptionAnalysisController.autoRun()
-    }
-}
\ No newline at end of file
diff --git a/src/main/java/com/flightfeather/monitor/scheduledtasks/DustMonthlyStatisticAnalysisTask.kt b/src/main/java/com/flightfeather/monitor/scheduledtasks/DustMonthlyStatisticAnalysisTask.kt
deleted file mode 100644
index 4595de5..0000000
--- a/src/main/java/com/flightfeather/monitor/scheduledtasks/DustMonthlyStatisticAnalysisTask.kt
+++ /dev/null
@@ -1,25 +0,0 @@
-package com.flightfeather.monitor.scheduledtasks
-
-import com.flightfeather.monitor.analysis.dust.StatisticAnalysisController
-import org.springframework.stereotype.Component
-import java.time.LocalDateTime
-
-@Component
-class DustMonthlyStatisticAnalysisTask(private val statisticAnalysisController: StatisticAnalysisController) :
-    BaseTimingTask() {
-
-    override val period: Long = 15
-
-    override fun execute(localtime: LocalDateTime) {
-//        println("鏈堝垎鏋愯疆璇�")
-//        println(localtime)
-        if (localtime.dayOfMonth == 1 && localtime.hour == 9 && localtime.minute == 0) {
-            doTask(localtime)
-        }
-    }
-
-    override fun doTask(localtime: LocalDateTime) {
-        log.info("鏈堝垎鏋愭墽琛�")
-        statisticAnalysisController.autoRunMonthlyStatics()
-    }
-}
\ No newline at end of file
diff --git a/src/main/java/com/flightfeather/monitor/scheduledtasks/TaskController.kt b/src/main/java/com/flightfeather/monitor/scheduledtasks/TaskController.kt
index 0970b24..e104113 100644
--- a/src/main/java/com/flightfeather/monitor/scheduledtasks/TaskController.kt
+++ b/src/main/java/com/flightfeather/monitor/scheduledtasks/TaskController.kt
@@ -1,6 +1,8 @@
 package com.flightfeather.monitor.scheduledtasks
 
-import lombok.extern.slf4j.Slf4j
+import com.flightfeather.monitor.scheduledtasks.dust.DustDailyAnalysisTask
+import com.flightfeather.monitor.scheduledtasks.dust.DustExceptionAnalysisTask
+import com.flightfeather.monitor.scheduledtasks.dust.DustMonthlyAnalysisTask
 import org.slf4j.Logger
 import org.slf4j.LoggerFactory
 import org.springframework.stereotype.Component
@@ -17,9 +19,8 @@
 @Component
 class TaskController(
     dustExceptionAnalysisTask: DustExceptionAnalysisTask,
-    dustDailyStatisticAnalysisTask: DustDailyStatisticAnalysisTask,
-    dustMonthlyStatisticAnalysisTask: DustMonthlyStatisticAnalysisTask,
-    dustAnalysisTask: DustAnalysisTask,
+    dustDailyAnalysisTask: DustDailyAnalysisTask,
+    dustMonthlyAnalysisTask: DustMonthlyAnalysisTask,
 ) {
 
     companion object {
@@ -37,10 +38,9 @@
     init {
         log.info("娣诲姞瀹氭椂浠诲姟")
         timeTask.clear()
-//        timeTask.add(dustExceptionAnalysisTask)
-//        timeTask.add(dustDailyStatisticAnalysisTask)
-//        timeTask.add(dustMonthlyStatisticAnalysisTask)
-        timeTask.add(dustAnalysisTask)
+        timeTask.add(dustExceptionAnalysisTask)
+        timeTask.add(dustDailyAnalysisTask)
+        timeTask.add(dustMonthlyAnalysisTask)
         log.info("娣诲姞瀹氭椂浠诲姟瀹屾垚锛屼换鍔℃�昏${timeTask.size}涓�")
     }
 
diff --git a/src/main/java/com/flightfeather/monitor/scheduledtasks/dust/BaseDustTimingTask.kt b/src/main/java/com/flightfeather/monitor/scheduledtasks/dust/BaseDustTimingTask.kt
new file mode 100644
index 0000000..dde110c
--- /dev/null
+++ b/src/main/java/com/flightfeather/monitor/scheduledtasks/dust/BaseDustTimingTask.kt
@@ -0,0 +1,29 @@
+package com.flightfeather.monitor.scheduledtasks.dust
+
+import com.flightfeather.monitor.domain.ds1.repository.RequestTaskRep
+import com.flightfeather.monitor.scheduledtasks.BaseTimingTask
+import java.time.LocalDateTime
+
+abstract class BaseDustTimingTask(private val requestTaskRep: RequestTaskRep) : BaseTimingTask() {
+
+    // 浠诲姟鏄惁寤惰繜鎵ц
+    protected var taskDelay = false
+
+    // 鏈娇鐢ㄥ埌
+    override val period: Long = 15L
+
+    override fun execute(localtime: LocalDateTime) {
+        doTask(localtime)
+    }
+
+    /**
+     * 褰撲换鍔″紑濮嬫墽琛屾椂锛屽垽鏂换鍔$姸鎬侊紝鍐冲畾鏄惁寤惰繜鎵ц
+     */
+    protected fun isTaskDelay(localtime: LocalDateTime): Boolean {
+        val task = requestTaskRep.findLatestTask(localtime)
+        // 浠诲姟姝e湪鎵ц锛岃烦杩囨娆″垎鏋愶紝鍦ㄤ笅涓�鍛ㄦ湡缁х画鍒ゆ柇锛岀瓑寰呬换鍔″畬鎴愬悗杩涜鍒嗘瀽
+        return if (task == null || task.runningStatus) {
+            true
+        } else !task.success
+    }
+}
\ No newline at end of file
diff --git a/src/main/java/com/flightfeather/monitor/scheduledtasks/dust/DustDailyAnalysisTask.kt b/src/main/java/com/flightfeather/monitor/scheduledtasks/dust/DustDailyAnalysisTask.kt
new file mode 100644
index 0000000..9c7e189
--- /dev/null
+++ b/src/main/java/com/flightfeather/monitor/scheduledtasks/dust/DustDailyAnalysisTask.kt
@@ -0,0 +1,26 @@
+package com.flightfeather.monitor.scheduledtasks.dust
+
+import com.flightfeather.monitor.analysis.dust.StatisticAnalysisController
+import com.flightfeather.monitor.domain.ds1.repository.RequestTaskRep
+import org.springframework.stereotype.Component
+import java.time.LocalDateTime
+
+/**
+ * 鎵皹鏃ョ粺璁″垎鏋愪换鍔�
+ */
+@Component
+class DustDailyAnalysisTask(
+    private val statisticAnalysisController: StatisticAnalysisController,
+    requestTaskRep: RequestTaskRep,
+) : BaseDustTimingTask(requestTaskRep) {
+
+    override fun doTask(localtime: LocalDateTime) {
+        if (taskDelay || (localtime.hour == 9 && localtime.minute == 0)) {
+            taskDelay = isTaskDelay(localtime)
+            if (!taskDelay) {
+                log.info("鏃ュ垎鏋愭墽琛�")
+                statisticAnalysisController.autoRunDailyStatics()
+            }
+        }
+    }
+}
\ No newline at end of file
diff --git a/src/main/java/com/flightfeather/monitor/scheduledtasks/dust/DustExceptionAnalysisTask.kt b/src/main/java/com/flightfeather/monitor/scheduledtasks/dust/DustExceptionAnalysisTask.kt
new file mode 100644
index 0000000..99d381f
--- /dev/null
+++ b/src/main/java/com/flightfeather/monitor/scheduledtasks/dust/DustExceptionAnalysisTask.kt
@@ -0,0 +1,29 @@
+package com.flightfeather.monitor.scheduledtasks.dust
+
+import com.flightfeather.monitor.analysis.dust.ExceptionAnalysisController
+import com.flightfeather.monitor.domain.ds1.repository.RequestTaskRep
+import com.flightfeather.monitor.scheduledtasks.BaseTimingTask
+import org.springframework.stereotype.Component
+import java.time.LocalDateTime
+
+/**
+ * 鎵皹鏁版嵁寮傚父缁熻鍒嗘瀽浠诲姟
+ */
+@Component
+class DustExceptionAnalysisTask(
+    private val exceptionAnalysisController: ExceptionAnalysisController,
+    requestTaskRep: RequestTaskRep,
+) : BaseDustTimingTask(requestTaskRep) {
+
+    override fun doTask(localtime: LocalDateTime) {
+        if (taskDelay || (localtime.hour == 8 && localtime.minute == 0)) {
+            // 鍒ゆ柇浠婃棩鐖彇浠诲姟鏄惁瀹屾垚
+            taskDelay = isTaskDelay(localtime)
+            if (!taskDelay) {
+                log.info("寮傚父鍒嗘瀽鎵ц")
+                exceptionAnalysisController.init()
+                exceptionAnalysisController.autoRun()
+            }
+        }
+    }
+}
\ No newline at end of file
diff --git a/src/main/java/com/flightfeather/monitor/scheduledtasks/dust/DustMonthlyAnalysisTask.kt b/src/main/java/com/flightfeather/monitor/scheduledtasks/dust/DustMonthlyAnalysisTask.kt
new file mode 100644
index 0000000..d1925ae
--- /dev/null
+++ b/src/main/java/com/flightfeather/monitor/scheduledtasks/dust/DustMonthlyAnalysisTask.kt
@@ -0,0 +1,27 @@
+package com.flightfeather.monitor.scheduledtasks.dust
+
+import com.flightfeather.monitor.analysis.dust.StatisticAnalysisController
+import com.flightfeather.monitor.domain.ds1.repository.RequestTaskRep
+import com.flightfeather.monitor.scheduledtasks.BaseTimingTask
+import org.springframework.stereotype.Component
+import java.time.LocalDateTime
+
+/**
+ * 鎵皹鏈堢粺璁″垎鏋愪换鍔�
+ */
+@Component
+class DustMonthlyAnalysisTask(
+    private val statisticAnalysisController: StatisticAnalysisController,
+    requestTaskRep: RequestTaskRep,
+) : BaseDustTimingTask(requestTaskRep) {
+
+    override fun doTask(localtime: LocalDateTime) {
+        if (taskDelay || (localtime.dayOfMonth == 1 && localtime.hour == 9 && localtime.minute == 0)) {
+            taskDelay = isTaskDelay(localtime)
+            if (!taskDelay) {
+                log.info("鏈堝垎鏋愭墽琛�")
+                statisticAnalysisController.autoRunMonthlyStatics()
+            }
+        }
+    }
+}
\ No newline at end of file
diff --git a/src/test/java/com/flightfeather/monitor/scheduledtasks/DustAnalysisTaskTest.kt b/src/test/java/com/flightfeather/monitor/scheduledtasks/DustAnalysisTaskTest.kt
deleted file mode 100644
index 0924fff..0000000
--- a/src/test/java/com/flightfeather/monitor/scheduledtasks/DustAnalysisTaskTest.kt
+++ /dev/null
@@ -1,31 +0,0 @@
-package com.flightfeather.monitor.scheduledtasks
-
-
-import org.junit.Test
-import org.junit.jupiter.api.Assertions.*
-import org.junit.jupiter.api.extension.ExtendWith
-import org.junit.runner.RunWith
-import org.springframework.beans.factory.annotation.Autowired
-import org.springframework.boot.test.context.SpringBootTest
-import org.springframework.test.context.junit.jupiter.SpringExtension
-import org.springframework.test.context.junit4.SpringRunner
-import java.time.LocalDateTime
-
-@RunWith(SpringRunner::class)
-@ExtendWith(SpringExtension::class)
-@SpringBootTest
-class DustAnalysisTaskTest {
-
-    @Autowired
-    lateinit var dustAnalysisTask: DustAnalysisTask
-
-    @Test
-    fun doTask() {
-        var time = LocalDateTime.of(2023, 10, 31, 8, 0, 0)
-        while (time.hour < 10) {
-            dustAnalysisTask.doTask(time)
-            time = time.plusMinutes(15)
-            Thread.sleep(5000)
-        }
-    }
-}
\ No newline at end of file

--
Gitblit v1.9.3