76
_ chasm.TaskAttributes,
77
_ *schedulerpb.BackfillerTask,
79
>
defer func() { backfiller.Attempt++ }()
80
82
>
logger := newTaggedLogger(b.baseLogger, scheduler)
83
>
metricsHandler := newTaggedMetricsHandler(b.metricsHandler, scheduler)
84
>
metricsHandler.Counter(metrics.ScheduleBackfillerTask.Name()).Record(1, metrics.OutcomeTag(outcomeFired), metrics.ReasonTag(reasonNone))
85
>
86
>
invoker := scheduler.Invoker.Get(ctx)
87
>
88
>
backfiller.getOrCreateEventLog(ctx).LogEvent(ctx, "backfillerTask executed")
89
>
90
>
// If the buffer is already full, don't move the watermark at all, just back off
91
>
// and retry.
92
>
tweakables := b.config.Tweakables(scheduler.Namespace)
93
>
limit, err := b.allowedBufferedStarts(ctx, scheduler, invoker, tweakables)
94
>
if err != nil {
95
return err
96
}
98
// Buffer is full, back off and retry later. Unlike the generator, the
99
// backfiller doesn't drop actions - it will retry after backoff.