feiyu02
2024-07-19 4e20a1aaaba1bb843820fca844c20055a33febce
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
package cn.flightfeather.supervision.common.executor
 
import java.time.Duration
import java.time.LocalDateTime
 
/**
 * 后台耗时任务状态
 */
class BgTaskStatus(
    val type: BgTaskType,
    val id: String,
    val name: String,
) {
    //    任务状态
    var status: TaskStatus = TaskStatus.WAITING
 
    //    开始时间
    var startTime: LocalDateTime? = null
 
    //    结束时间
    var endTime: LocalDateTime? = null
 
    //    创建时间
    var createTime: LocalDateTime = LocalDateTime.now()
 
    //    运行时长(秒)
    val runTime: Long
        get() {
            when (status) {
                TaskStatus.WAITING -> {
                    return 0
                }
                TaskStatus.RUNNING -> {
                    val now = LocalDateTime.now()
                    val duration = Duration.between(startTime, now)
                    return duration.toMillis() / 1000
                }
                TaskStatus.SUCCESS,
                TaskStatus.FAIL,
                TaskStatus.SHUTDOWN,
                -> {
                    val duration = Duration.between(startTime, endTime)
                    return duration.toMillis() / 1000
                }
            }
        }
 
    // 额外自定义附带信息
    var extra: Any? = null
 
}
 
enum class TaskStatus {
    WAITING,
    RUNNING,
    SUCCESS,
    FAIL,
    SHUTDOWN
}