第一版时间轮任务调度实现 #1
8
core.go
8
core.go
@ -181,9 +181,10 @@ func (tw *TimeWheel) checkAndRunTask() {
|
|||||||
//
|
//
|
||||||
// Date : 13:43 2023/8/4
|
// Date : 13:43 2023/8/4
|
||||||
func (tw *TimeWheel) AddTask(task *Task, byInterval bool) {
|
func (tw *TimeWheel) AddTask(task *Task, byInterval bool) {
|
||||||
if nil != task {
|
// 生成 run_id
|
||||||
// 生成 key
|
task.RunID = wrapper.StringFromRandom(128, "").Md5().Value
|
||||||
task.Key = wrapper.StringFromRandom(128, "").Md5().Value
|
if nil != task && nil != task.Job {
|
||||||
|
task.Key = task.Job.GetFlag() + "_" + task.RunID
|
||||||
}
|
}
|
||||||
var pos, circle int
|
var pos, circle int
|
||||||
if byInterval {
|
if byInterval {
|
||||||
@ -261,6 +262,7 @@ func (tw *TimeWheel) getPosAndCircleByCreatedTime(createdTime time.Time, d time.
|
|||||||
//
|
//
|
||||||
// Date : 11:44 2023/8/4
|
// Date : 11:44 2023/8/4
|
||||||
type Task struct {
|
type Task struct {
|
||||||
|
RunID string // 每一次运行的run id
|
||||||
Key string // 用来标识task对象,是唯一的
|
Key string // 用来标识task对象,是唯一的
|
||||||
Interval time.Duration // 任务周期
|
Interval time.Duration // 任务周期
|
||||||
CreatedTime time.Time // 任务的创建时间
|
CreatedTime time.Time // 任务的创建时间
|
||||||
|
Loading…
Reference in New Issue
Block a user