Skip to content

Commit 599fb25

Browse files
committed
#### Version 0.9.8
* feature: TaskContext增加Header属性,类型为Map[string]interface{},用于在一次执行周期内传递自定义数据,每次执行完置空 * feature: TaskContext增加Error属性,类型为error,用于在一次执行周期内传递执行结果的Error信息,每次执行完置空 * 2020-03-28 16:00 at ShangHai
1 parent 7e62b5f commit 599fb25

5 files changed

Lines changed: 11 additions & 3 deletions

File tree

crontask.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -156,7 +156,8 @@ func startCronTask(task *CronTask) {
156156

157157
func doCronTask(task *CronTask) {
158158
defer func() {
159-
task.context.Header = nil
159+
task.Context().Header = nil
160+
task.Context().Error = nil
160161
if err := recover(); err != nil {
161162
task.CounterInfo().ErrorCounter.Inc(1)
162163
task.taskService.Logger().Debug(fmt.Sprint(task.TaskID, " cron handler recover error => ", err))
@@ -188,6 +189,7 @@ func doCronTask(task *CronTask) {
188189
err = task.handler(task.Context())
189190
}
190191
if err != nil {
192+
task.Context().Error = err
191193
task.CounterInfo().ErrorCounter.Inc(1)
192194
if task.taskService != nil && task.taskService.ExceptionHandler != nil {
193195
task.taskService.ExceptionHandler(task.Context(), err)

looptask.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,8 @@ func NewLoopTask(taskID string, isRun bool, dueTime int64, interval int64, handl
107107
func startLoopTask(task *LoopTask) {
108108
handler := func() {
109109
defer func() {
110-
task.context.Header = nil
110+
task.Context().Header = nil
111+
task.Context().Error = nil
111112
task.CounterInfo().RunCounter.Inc(1)
112113
if err := recover(); err != nil {
113114
task.CounterInfo().ErrorCounter.Inc(1)
@@ -130,6 +131,7 @@ func startLoopTask(task *LoopTask) {
130131
err = task.handler(task.Context())
131132
}
132133
if err != nil {
134+
task.Context().Error = err
133135
task.CounterInfo().ErrorCounter.Inc(1)
134136
if task.taskService != nil && task.taskService.ExceptionHandler != nil {
135137
task.taskService.ExceptionHandler(task.Context(), err)

queuetask.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,7 @@ func startQueueTask(task *QueueTask) {
102102
handler := func() {
103103
defer func() {
104104
task.Context().Header = nil
105+
task.Context().Error = nil
105106
task.CounterInfo().RunCounter.Inc(1)
106107
if err := recover(); err != nil {
107108
task.CounterInfo().ErrorCounter.Inc(1)
@@ -125,6 +126,7 @@ func startQueueTask(task *QueueTask) {
125126
}
126127

127128
if err != nil {
129+
task.Context().Error = err
128130
task.CounterInfo().ErrorCounter.Inc(1)
129131
if task.taskService != nil && task.taskService.ExceptionHandler != nil {
130132
task.taskService.ExceptionHandler(task.Context(), err)

taskinfo.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@ type (
4545
TaskData interface{} //用于当前Task全局设置的数据项
4646
Message interface{} //用于每次Task执行上下文消息传输
4747
IsEnd bool //如果设置该属性为true,则停止当次任务的后续执行,一般用在OnBegin中
48+
Error error
4849
Header map[string]interface{}
4950
}
5051

version.MD

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
## devfeel/dottask
22

33
#### Version 0.9.8
4-
* feature: TaskContext增加Header,类型为Map[string]interface{},用于在一次执行周期内传递自定义数据,每次执行完会清除
4+
* feature: TaskContext增加Header属性,类型为Map[string]interface{},用于在一次执行周期内传递自定义数据,每次执行完置空
5+
* feature: TaskContext增加Error属性,类型为error,用于在一次执行周期内传递执行结果的Error信息,每次执行完置空
56
* 2020-03-28 16:00 at ShangHai
67

78
#### Version 0.9.7

0 commit comments

Comments
 (0)