Skip to content

Commit c59894b

Browse files
Update framework
1 parent 157aff3 commit c59894b

File tree

8 files changed

+338
-103
lines changed

8 files changed

+338
-103
lines changed

callback_receiver.go

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
package lighttaskscheduler
2+
3+
import "context"
4+
5+
// CallbackReceiver 任务状态回调接收器
6+
type CallbackReceiver interface {
7+
GetCallbackChannel(ctx context.Context) (taskChannel chan Task)
8+
}

go.mod

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,8 @@ module github.com/memory-overflow/light-task-scheduler
33
go 1.16
44

55
require (
6-
github.com/memory-overflow/go-common-library v0.0.0-20230426144745-a649dc22d6ab
7-
gorm.io/driver/mysql v1.5.0
8-
gorm.io/gorm v1.25.0
6+
github.com/memory-overflow/go-common-library v0.0.0-20230427064346-aef3d86a1c60
7+
github.com/memory-overflow/go-orderedmap v0.0.0-20230427064227-758a452e8a9c
8+
gorm.io/driver/mysql v1.5.1
9+
gorm.io/gorm v1.25.1
910
)

go.sum

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
2+
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
23
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
34
github.com/eapache/queue v1.1.0/go.mod h1:6eCeP0CKFpHLu8blIFXhExK/dRa7WDZfr6jVFPTqq+I=
45
github.com/go-sql-driver/mysql v1.7.0 h1:ueSltNNllEqE3qcWBTD0iQd3IpL/6U+mJxLkazJ7YPc=
@@ -9,19 +10,25 @@ github.com/jinzhu/inflection v1.0.0 h1:K317FqzuhWc8YvSVlFMCCUb36O/S9MCKRDI7QkRKD
910
github.com/jinzhu/inflection v1.0.0/go.mod h1:h+uFLlag+Qp1Va5pdKtLDYj+kHp5pxUVkryuEj+Srlc=
1011
github.com/jinzhu/now v1.1.5 h1:/o9tlHleP7gOFmsnYNz3RGnqzefHA47wQpKrrdTIwXQ=
1112
github.com/jinzhu/now v1.1.5/go.mod h1:d3SSVoowX0Lcu0IBviAWJpolVfI5UJVZZ7cO71lE/z8=
13+
github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM=
1214
github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo=
13-
github.com/memory-overflow/go-common-library v0.0.0-20230426144745-a649dc22d6ab h1:DrN+ZDowgkIyBMVdxXihzrW/l7NOsXH13hSpmjd2XVY=
14-
github.com/memory-overflow/go-common-library v0.0.0-20230426144745-a649dc22d6ab/go.mod h1:Bqm7BH39OJ4Igz9jYs4494mkEmXiBeSsVZhWnj6KKU8=
15+
github.com/memory-overflow/go-common-library v0.0.0-20230427064346-aef3d86a1c60 h1:mACMS1n9NJMQcqz1Od6OXHAKQdeR/En8jdK9+zLcVT0=
16+
github.com/memory-overflow/go-common-library v0.0.0-20230427064346-aef3d86a1c60/go.mod h1:Bqm7BH39OJ4Igz9jYs4494mkEmXiBeSsVZhWnj6KKU8=
17+
github.com/memory-overflow/go-orderedmap v0.0.0-20230427064227-758a452e8a9c h1:H9acj0TgXE5CRcYVLshP076fXy6BPO+64HlohXDEzNs=
18+
github.com/memory-overflow/go-orderedmap v0.0.0-20230427064227-758a452e8a9c/go.mod h1:cD+RcGRXZQmwHnDhPfO5FQXv6lPJuH7EW+uC81jK4Is=
19+
github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421 h1:ZqeYNhU3OHLH3mGKHDcjJRFFRrJa6eAM5H+CtDdOsPc=
1520
github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
21+
github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M=
1622
github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk=
23+
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
1724
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
1825
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
26+
github.com/stretchr/testify v1.3.0 h1:TivCn/peBQ7UY8ooIcPgZFpTNSz0Q2U6UrFlUfqbe0Q=
1927
github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
2028
github.com/tidwall/gjson v1.14.4/go.mod h1:/wbyibRr2FHMks5tjHJ5F8dMZh3AcwJEMf5vlfC0lxk=
2129
github.com/tidwall/match v1.1.1/go.mod h1:eRSPERbgtNPcGhD8UCthc6PmLEQXEWd3PRB5JTxsfmM=
2230
github.com/tidwall/pretty v1.2.0/go.mod h1:ITEVvHYasfjBbM0u2Pg8T2nJnzm8xPwvNhhsoaGGjNU=
23-
gorm.io/driver/mysql v1.5.0 h1:6hSAT5QcyIaty0jfnff0z0CLDjyRgZ8mlMHLqSt7uXM=
24-
gorm.io/driver/mysql v1.5.0/go.mod h1:FFla/fJuCvyTi7rJQd27qlNX2v3L6deTR1GgTjSOLPo=
25-
gorm.io/gorm v1.24.7-0.20230306060331-85eaf9eeda11/go.mod h1:L4uxeKpfBml98NYqVqwAdmV1a2nBtAec/cf3fpucW/k=
26-
gorm.io/gorm v1.25.0 h1:+KtYtb2roDz14EQe4bla8CbQlmb9dN3VejSai3lprfU=
27-
gorm.io/gorm v1.25.0/go.mod h1:L4uxeKpfBml98NYqVqwAdmV1a2nBtAec/cf3fpucW/k=
31+
gorm.io/driver/mysql v1.5.1 h1:WUEH5VF9obL/lTtzjmML/5e6VfFR/788coz2uaVCAZw=
32+
gorm.io/driver/mysql v1.5.1/go.mod h1:Jo3Xu7mMhCyj8dlrb3WoCaRd1FhsVh+yMXb1jUInf5o=
33+
gorm.io/gorm v1.25.1 h1:nsSALe5Pr+cM3V1qwwQ7rOkw+6UeLrX5O4v3llhHa64=
34+
gorm.io/gorm v1.25.1/go.mod h1:L4uxeKpfBml98NYqVqwAdmV1a2nBtAec/cf3fpucW/k=

task.go

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -19,14 +19,21 @@ const (
1919

2020
// Task 通用的任务结构
2121
type Task struct {
22-
TaskId string // 该任务的唯一标识id,创建任务的时候赋予
23-
TaskPriority int // 任务优先级, 创建任务的时候可选
24-
TaskItem interface{} // 任务对象,创建任务的时候赋予
22+
// 该任务的唯一标识id,创建任务的时候赋予
23+
TaskId string
24+
// 任务优先级, 创建任务的时候可选
25+
TaskPriority int
26+
// 任务对象,创建任务的时候赋予
27+
TaskItem interface{}
2528

26-
TaskStartTime time.Time // 框架赋予值
27-
TaskEnbTime time.Time // 框架赋予值
28-
TaskStatus TaskStatus // 任务容器负责赋予值
29-
FailedReason string // 任务容器负责赋予值
29+
TaskStartTime time.Time // 框架赋予值
30+
TaskEnbTime time.Time // 框架赋予值
31+
// 任务状态,任务容器负责赋予值
32+
TaskStatus TaskStatus
33+
// 任务容器负责赋予值
34+
FailedReason string
35+
// 任务已经重试的次数,任务容器负责赋予值
36+
TaskAttemptsTime int32
3037
}
3138

3239
// AsyncTaskStatus 异步任务状态

task_actuator.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ type TaskActuator interface {
88
// Init 任务在被加入调度系统前的初始化工作
99
Init(ctx context.Context, task *Task) (newTask *Task, err error)
1010

11-
// Start 开始执行任务,不要阻塞该方法,如果是同步任务,在单独的携程执行,执行器在内存中维护任务状态,转成异步任务,
11+
// Start 开始执行任务,不要阻塞该方法,如果是同步任务,在单独的线程执行,执行器在内存中维护任务状态,转成异步任务,
1212
// 通过 GetAsyncTaskStatus 返回任务状态
1313
// ignoreErr 是否忽略任务调度的错误,等待恢复,如果 ignoreErr = false, Start 返回 error 任务会失败
1414
Start(ctx context.Context, task *Task) (newTask *Task, ignoreErr bool, err error)

task_container.go

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -37,8 +37,4 @@ type TaskContainer interface {
3737

3838
// UpdateRunningTaskStatus 更新执行中的任务执行进度状态
3939
UpdateRunningTaskStatus(ctx context.Context, task *Task, status AsyncTaskStatus) error
40-
41-
// SaveData 提供一个把从任务执行器获取的任务执行的结果进行存储的机会
42-
// data 协议保持和 TaskActuator.GetOutput 一样
43-
SaveData(ctx context.Context, task *Task, data interface{}) (err error)
4440
}

0 commit comments

Comments
 (0)