From 0c59552dc14c9023d4c0a9d57509cce1d5a6d6da Mon Sep 17 00:00:00 2001 From: feiyu02 <risaku@163.com> Date: 星期二, 31 十二月 2024 10:07:45 +0800 Subject: [PATCH] Merge remote-tracking branch 'supervision/hc-socket-1129' --- src/main/kotlin/cn/flightfeather/supervision/common/executor/BgTask.kt | 14 ++++++++++---- 1 files changed, 10 insertions(+), 4 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 66a9315..3a0b2b1 100644 --- a/src/main/kotlin/cn/flightfeather/supervision/common/executor/BgTask.kt +++ b/src/main/kotlin/cn/flightfeather/supervision/common/executor/BgTask.kt @@ -11,13 +11,14 @@ 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() { @@ -31,24 +32,29 @@ } 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() + 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