MCPcopy
hub / github.com/uptrace/uptrace / HandleJob

Method HandleJob

pkg/taskq/registry.go:60–79  ·  view source on GitHub ↗
(ctx context.Context, msg *Job)

Source from the content-addressed store, hash-verified

58}
59
60func (r *TaskMap) HandleJob(ctx context.Context, msg *Job) error {
61 task := r.Get(msg.TaskName)
62 if task == nil {
63 msg.Delay = r.delay(msg, nil, unknownTaskOpt)
64 return fmt.Errorf("taskq: unknown task=%q", msg.TaskName)
65 }
66
67 opt := task.Options()
68 if opt.DeferFunc != nil {
69 defer opt.DeferFunc()
70 }
71
72 msgErr := task.HandleJob(ctx, msg)
73 if msgErr == nil {
74 return nil
75 }
76
77 msg.Delay = r.delay(msg, msgErr, opt)
78 return msgErr
79}
80
81func (r *TaskMap) delay(msg *Job, msgErr error, opt *TaskConfig) time.Duration {
82 if msg.ReservedCount >= opt.RetryLimit {

Callers

nothing calls this directly

Calls 4

GetMethod · 0.95
delayMethod · 0.95
OptionsMethod · 0.65
HandleJobMethod · 0.65

Tested by

no test coverage detected