2023-11-27 22:37:33 +08:00
|
|
|
package timerx
|
2023-08-27 23:39:58 +08:00
|
|
|
|
2023-11-11 17:26:46 +08:00
|
|
|
import (
|
|
|
|
|
"context"
|
|
|
|
|
"time"
|
|
|
|
|
)
|
2023-08-27 23:39:58 +08:00
|
|
|
|
|
|
|
|
type timerStr struct {
|
|
|
|
|
Callback callback // 需要回调的方法
|
|
|
|
|
CanRunning chan (struct{}) // 是否允许执行
|
|
|
|
|
BeginTime time.Time // 初始化任务的时间
|
|
|
|
|
NextTime time.Time // [删]下一次执行的时间
|
|
|
|
|
SpaceTime time.Duration // 任务间隔时间
|
|
|
|
|
UniqueKey string // 全局唯一键
|
2023-11-13 23:49:42 +08:00
|
|
|
ExtendData interface{} // 附加参数
|
2023-08-27 23:39:58 +08:00
|
|
|
}
|
|
|
|
|
|
2023-11-27 22:37:33 +08:00
|
|
|
|
2023-11-11 17:26:46 +08:00
|
|
|
var nextTime = time.Now() // 下一次执行的时间
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 定义各个回调函数
|
2023-11-13 23:49:42 +08:00
|
|
|
type callback func(ctx context.Context, extendData interface{}) error
|