in RobotOrchestrator.OrderProducer/BatchJob.cs [121:138]
private async Task ProcessBatches(Action<int> handler, CancellationToken cancellationToken)
{
var itemsLeft = MaxItems;
while (!cancellationToken.IsCancellationRequested && (itemsLeft > 0 || itemsLeft == -1))
{
var batchSize = BatchSize;
if (MaxItems != -1)
{
batchSize = Math.Min(itemsLeft, BatchSize);
itemsLeft -= batchSize;
}
handler?.Invoke(batchSize);
await Task.Delay(DelayInSecs * 1000);
}
}