From b180708562d6fb872c83c05756e8041d9967483a Mon Sep 17 00:00:00 2001
From: Riku <risaku@163.com>
Date: 星期一, 22 十二月 2025 21:04:13 +0800
Subject: [PATCH] 2025.12.22 1. 修改日任务统计接口,新增当天内整改问题数和48小时内整改问题数统计
---
src/main/kotlin/cn/flightfeather/supervision/common/executor/BgTask.kt | 26 ++++++++++++++++++--------
1 files changed, 18 insertions(+), 8 deletions(-)
diff --git a/src/main/kotlin/cn/flightfeather/supervision/common/executor/BgTask.kt b/src/main/kotlin/cn/flightfeather/supervision/common/executor/BgTask.kt
index 953eac3..3a0b2b1 100644
--- a/src/main/kotlin/cn/flightfeather/supervision/common/executor/BgTask.kt
+++ b/src/main/kotlin/cn/flightfeather/supervision/common/executor/BgTask.kt
@@ -1,6 +1,5 @@
package cn.flightfeather.supervision.common.executor
-import org.springframework.scheduling.annotation.Async
import java.time.LocalDateTime
import java.util.concurrent.Future
@@ -12,39 +11,50 @@
val id: String,
val name: String,
private val task: () -> Boolean,
+ private val onStatusChange: (status: BgTaskStatus) -> Unit
) {
var taskStatus = BgTaskStatus(type, id, name)
var future: Future<*>? = null
fun ready() {
- taskStatus.status = TaskStatus.RUNNING
taskStatus.startTime = LocalDateTime.now()
+ setStatus(TaskStatus.RUNNING)
}
fun execute() {
- val res = task()
- if (res) success() else fail()
+ try {
+ val res = task()
+ if (res) success() else fail()
+ } catch (e: Exception) {
+ fail()
+ taskStatus.extra = e.message
+ }
}
fun success() {
- taskStatus.status = TaskStatus.SUCCESS
complete()
+ setStatus(TaskStatus.SUCCESS)
}
fun fail() {
- taskStatus.status = TaskStatus.FAIL
complete()
+ setStatus(TaskStatus.FAIL)
}
fun shutdown() {
if (future?.isCancelled == false && !future!!.isDone) {
future!!.cancel(true)
- taskStatus.status = TaskStatus.SHUTDOWN
- complete()
}
+ complete()
+ setStatus(TaskStatus.SHUTDOWN)
}
fun complete() {
taskStatus.endTime = LocalDateTime.now()
}
+
+ fun setStatus(status: TaskStatus) {
+ taskStatus.status = status
+ onStatusChange(taskStatus)
+ }
}
\ No newline at end of file
--
Gitblit v1.9.3