WithTracing returns a new Universal job that will trace.
(tracer opentracing.Tracer)
| 75 | |
| 76 | // WithTracing returns a new Universal job that will trace. |
| 77 | func WithTracing(tracer opentracing.Tracer) JobOption { |
| 78 | return func(descriptor *JobDescriptor) { |
| 79 | innerRun := descriptor.Run |
| 80 | descriptor.Run = func(ctx context.Context) error { |
| 81 | span, ctx := opentracing.StartSpanFromContextWithTracer(ctx, tracer, fmt.Sprintf("Job: %s", descriptor.Name)) |
| 82 | defer span.Finish() |
| 83 | span.SetTag("schedule", descriptor.RawSpec) |
| 84 | err := innerRun(ctx) |
| 85 | if err != nil { |
| 86 | ext.LogError(span, err) |
| 87 | return err |
| 88 | } |
| 89 | return nil |
| 90 | } |
| 91 | } |
| 92 | } |
| 93 | |
| 94 | // SkipIfOverlap returns a new JobDescriptor that will skip the job if it overlaps with another job. |
| 95 | func SkipIfOverlap() JobOption { |