208
scheduler *Scheduler,
209
backfiller *Backfiller,
211
>
request := backfiller.GetTriggerRequest()
212
>
overlapPolicy := scheduler.resolveOverlapPolicy(request.GetOverlapPolicy())
213
>
214
>
// Add a single manual start and mark the Backfiller as complete. For batch
215
>
// backfill requests, a deterministic start time is trivial as they follow the
216
>
// schedule. For immediate trigger requests, the `LastProcessedTime` (set to
217
>
// "now" when the Backfiller is spawned to handle a request) is used for start
218
>
// time determinism.
219
>
nowpb := backfiller.GetLastProcessedTime()
220
>
now := nowpb.AsTime()
221
>
requestID := generateRequestID(scheduler, backfiller.GetBackfillId(), now, now)
222
>
workflowID := schedulescommon.GenerateWorkflowID(scheduler.WorkflowID(), now)
223
>
result.BufferedStarts = []*schedulespb.BufferedStart{
224
>
{
225
>
NominalTime: nowpb,
226
>
ActualTime: nowpb,
227
>
DesiredTime: nowpb,
228
>
OverlapPolicy: overlapPolicy,
229
>
Manual: true,
230
>
RequestId: requestID,
231
>
WorkflowId: workflowID,
232
>
},
233
>
}
234
>
result.Complete = true
235
>
236
>
return
237
>
}
238
239
// allowedBufferedStarts returns the number of BufferedStarts that the Backfiller should