feiyu02
2024-08-15 196bb14112448857a885e32dc4149e308e00b01a
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
package cn.flightfeather.supervision.bgtask
 
import java.time.LocalDateTime
 
/**
 * 定时任务基类
 */
abstract class BaseTimingTask {
 
    // 记录上次任务执行的时间点,单位:毫秒
    private var lastTime: LocalDateTime = LocalDateTime.MIN
 
    // 任务执行周期,单位:分钟
    abstract val period: Long
 
    open fun execute(localtime:LocalDateTime) {
        val now = LocalDateTime.now()
        if (now.minusSeconds(period * 60 - 5) >= lastTime) {
            lastTime = now
            doTask(localtime)
        }
    }
 
    abstract fun doTask(localtime:LocalDateTime)
}