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