src/main/kotlin/cn/flightfeather/supervision/common/executor/BackgroundTaskCtrl.kt
@@ -1,7 +1,7 @@
package cn.flightfeather.supervision.common.executor
import cn.flightfeather.supervision.common.exception.BizException
import cn.flightfeather.supervision.common.utils.SendSocketMessageUtil
import cn.flightfeather.supervision.socket.WebSocketSendMessageUtil
import org.springframework.stereotype.Component
import java.util.concurrent.ConcurrentHashMap
import java.util.concurrent.Executors
@@ -38,7 +38,10 @@
                throw BizException("无法重复创建任务")
            }
        }
        val t = BgTask(type, id, name, task)
        val t = BgTask(type, id, name, task) { status ->
            // 发送消息
            WebSocketSendMessageUtil.sendBgTaskMessage(status)
        }
        taskSet[id] = t
        return t
    }
@@ -65,10 +68,7 @@
            task.ready()
            task.future = executorService.submit {
                task.execute()
                println(task.taskStatus.runTime)
                SendSocketMessageUtil.sendBgTaskMessage(task.taskStatus)
            }
            SendSocketMessageUtil.sendBgTaskMessage(task.taskStatus)
            return task
        }
    }
@@ -117,13 +117,11 @@
        return if (id != null) {
            val task = taskMap[id] ?: throw BizException("无法关闭任务,任务[${id}]不存在")
            task.shutdown()
            SendSocketMessageUtil.sendBgTaskMessage(task.taskStatus)
            listOf(task.taskStatus)
        } else {
            val res = mutableListOf<BgTaskStatus?>()
            taskMap.forEach { (t, u) ->
                u.shutdown()
                SendSocketMessageUtil.sendBgTaskMessage(u.taskStatus)
                res.add(u.taskStatus)
            }
            res.sortedBy { it?.createTime }