fix: 任务处理返回信息和错误error对象
This commit is contained in:
@@ -63,7 +63,9 @@ type Queue struct {
|
|||||||
// QueueProcessor 队列处理函数接口
|
// QueueProcessor 队列处理函数接口
|
||||||
type QueueProcessor interface {
|
type QueueProcessor interface {
|
||||||
// Execute 实际执行函数
|
// Execute 实际执行函数
|
||||||
Execute(data any) any
|
// any 返回有效值最终序列化为字符串,记录为成功
|
||||||
|
// error 存在错误,记录为失败
|
||||||
|
Execute(data any) (any, error)
|
||||||
}
|
}
|
||||||
|
|
||||||
// RunJob 运行任务,data是传入的数据
|
// RunJob 运行任务,data是传入的数据
|
||||||
@@ -196,7 +198,12 @@ func (s QueueJob) Run() {
|
|||||||
|
|
||||||
// 获取队列处理器接口实现
|
// 获取队列处理器接口实现
|
||||||
processor := *job.queueProcessor
|
processor := *job.queueProcessor
|
||||||
result := processor.Execute(job.Data)
|
result, err := processor.Execute(job.Data)
|
||||||
job.Status = Completed
|
if err != nil {
|
||||||
newLog.Completed(result, "completed", job)
|
job.Status = Failed
|
||||||
|
newLog.Error(err, "failed", job)
|
||||||
|
} else {
|
||||||
|
job.Status = Completed
|
||||||
|
newLog.Completed(result, "completed", job)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -19,10 +19,10 @@ var NewSimple = &Simple{}
|
|||||||
|
|
||||||
type Simple struct{}
|
type Simple struct{}
|
||||||
|
|
||||||
func (s *Simple) Execute(data any) any {
|
func (s *Simple) Execute(data any) (any, error) {
|
||||||
logger.Infof("执行=> %+v ", data)
|
logger.Infof("执行=> %+v ", data)
|
||||||
// 实现任务处理逻辑
|
// 实现任务处理逻辑
|
||||||
return data
|
return data, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestSimple(t *testing.T) {
|
func TestSimple(t *testing.T) {
|
||||||
@@ -68,7 +68,7 @@ type FooProcessor struct {
|
|||||||
count int
|
count int
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *FooProcessor) Execute(data any) any {
|
func (s *FooProcessor) Execute(data any) (any, error) {
|
||||||
logger.Infof("执行 %d %d => %+v ", s.count, s.progress, data)
|
logger.Infof("执行 %d %d => %+v ", s.count, s.progress, data)
|
||||||
s.count++
|
s.count++
|
||||||
|
|
||||||
@@ -85,7 +85,7 @@ func (s *FooProcessor) Execute(data any) any {
|
|||||||
// 改变任务进度
|
// 改变任务进度
|
||||||
s.progress = i
|
s.progress = i
|
||||||
}
|
}
|
||||||
return data
|
return data, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestFoo(t *testing.T) {
|
func TestFoo(t *testing.T) {
|
||||||
@@ -119,7 +119,7 @@ type BarProcessor struct {
|
|||||||
count int
|
count int
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *BarProcessor) Execute(data any) any {
|
func (s *BarProcessor) Execute(data any) (any, error) {
|
||||||
logger.Infof("执行 %d %d => %+v ", s.count, s.progress, data)
|
logger.Infof("执行 %d %d => %+v ", s.count, s.progress, data)
|
||||||
s.count++
|
s.count++
|
||||||
|
|
||||||
@@ -145,7 +145,7 @@ func (s *BarProcessor) Execute(data any) any {
|
|||||||
s.progress = i
|
s.progress = i
|
||||||
}
|
}
|
||||||
|
|
||||||
return data
|
return data, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestBar(t *testing.T) {
|
func TestBar(t *testing.T) {
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ type BarProcessor struct {
|
|||||||
count int
|
count int
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *BarProcessor) Execute(data any) any {
|
func (s *BarProcessor) Execute(data any) (any, error) {
|
||||||
logger.Infof("执行 %d 次,上次进度: %d ", s.count, s.progress)
|
logger.Infof("执行 %d 次,上次进度: %d ", s.count, s.progress)
|
||||||
s.count++
|
s.count++
|
||||||
|
|
||||||
@@ -51,10 +51,11 @@ func (s *BarProcessor) Execute(data any) any {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 返回结果,用于记录执行结果
|
// 返回结果,用于记录执行结果
|
||||||
return map[string]any{
|
result := map[string]any{
|
||||||
"repeat": options.Repeat,
|
"repeat": options.Repeat,
|
||||||
"jobName": sysJob.JobName,
|
"jobName": sysJob.JobName,
|
||||||
"invokeTarget": sysJob.InvokeTarget,
|
"invokeTarget": sysJob.InvokeTarget,
|
||||||
"targetParams": sysJob.TargetParams,
|
"targetParams": sysJob.TargetParams,
|
||||||
}
|
}
|
||||||
|
return result, nil
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ type FooProcessor struct {
|
|||||||
count int
|
count int
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *FooProcessor) Execute(data any) any {
|
func (s *FooProcessor) Execute(data any) (any, error) {
|
||||||
logger.Infof("执行 %d 次,上次进度: %d ", s.count, s.progress)
|
logger.Infof("执行 %d 次,上次进度: %d ", s.count, s.progress)
|
||||||
s.count++
|
s.count++
|
||||||
|
|
||||||
@@ -43,10 +43,11 @@ func (s *FooProcessor) Execute(data any) any {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 返回结果,用于记录执行结果
|
// 返回结果,用于记录执行结果
|
||||||
return map[string]any{
|
result := map[string]any{
|
||||||
"repeat": options.Repeat,
|
"repeat": options.Repeat,
|
||||||
"jobName": sysJob.JobName,
|
"jobName": sysJob.JobName,
|
||||||
"invokeTarget": sysJob.InvokeTarget,
|
"invokeTarget": sysJob.InvokeTarget,
|
||||||
"targetParams": sysJob.TargetParams,
|
"targetParams": sysJob.TargetParams,
|
||||||
}
|
}
|
||||||
|
return result, nil
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -10,17 +10,18 @@ var NewProcessor = &simpleProcessor{}
|
|||||||
// simple 队列任务处理
|
// simple 队列任务处理
|
||||||
type simpleProcessor struct{}
|
type simpleProcessor struct{}
|
||||||
|
|
||||||
func (s *simpleProcessor) Execute(data any) any {
|
func (s *simpleProcessor) Execute(data any) (any, error) {
|
||||||
options := data.(cron.JobData)
|
options := data.(cron.JobData)
|
||||||
|
|
||||||
sysJob := options.SysJob
|
sysJob := options.SysJob
|
||||||
logger.Infof("重复 %v 任务ID %s", options.Repeat, sysJob.JobID)
|
logger.Infof("重复 %v 任务ID %s", options.Repeat, sysJob.JobID)
|
||||||
|
|
||||||
// 返回结果,用于记录执行结果
|
// 返回结果,用于记录执行结果
|
||||||
return map[string]any{
|
result := map[string]any{
|
||||||
"repeat": options.Repeat,
|
"repeat": options.Repeat,
|
||||||
"jobName": sysJob.JobName,
|
"jobName": sysJob.JobName,
|
||||||
"invokeTarget": sysJob.InvokeTarget,
|
"invokeTarget": sysJob.InvokeTarget,
|
||||||
"targetParams": sysJob.TargetParams,
|
"targetParams": sysJob.TargetParams,
|
||||||
}
|
}
|
||||||
|
return result, nil
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user