| | |
| | | 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 |
| | |
| | | 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 |
| | | } |
| | |
| | | task.ready() |
| | | task.future = executorService.submit { |
| | | task.execute() |
| | | println(task.taskStatus.runTime) |
| | | SendSocketMessageUtil.sendBgTaskMessage(task.taskStatus) |
| | | } |
| | | SendSocketMessageUtil.sendBgTaskMessage(task.taskStatus) |
| | | return task |
| | | } |
| | | } |
| | |
| | | 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 } |