From 6fdacca914ef38e6cc91292ef07c5af32bd92991 Mon Sep 17 00:00:00 2001 From: hcong <1050828145@qq.com> Date: 星期二, 03 十二月 2024 11:12:40 +0800 Subject: [PATCH] 1. BgTask增加onStatusChange参数,通过外界传递如何发送状态改变的消息 2. BackgroundTaskCtrl.kt 创建了BgTask对象并传递了onStatusChange参数 3. WebSocketMessageUtil 类名修改为 WebSocketMessageDecoder 4. SendWebSocketMessageUtil 类名修改为 WebSocketSendMessageUtil --- src/main/kotlin/cn/flightfeather/supervision/common/executor/BgTask.kt | 17 ++++++++++++----- 1 files changed, 12 insertions(+), 5 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..2ed156b 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,6 +11,7 @@ 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 @@ -22,26 +22,33 @@ } 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() + onStatusChange(taskStatus) } fun fail() { taskStatus.status = TaskStatus.FAIL complete() + onStatusChange(taskStatus) } fun shutdown() { if (future?.isCancelled == false && !future!!.isDone) { future!!.cancel(true) - taskStatus.status = TaskStatus.SHUTDOWN - complete() } + taskStatus.status = TaskStatus.SHUTDOWN + complete() } fun complete() { -- Gitblit v1.9.3