protected override Task Sleep(Exception?error, CancellationToken cancellationToken) { if (error != null) { return(Clock.Delay(ErrorDelay, cancellationToken)); } if (LastCount == BatchSize) { return(Task.CompletedTask); } if (OperationLogChangeMonitor == null) { return(Clock.Delay(UnconditionalWakeUpPeriod, cancellationToken)); } return(OperationLogChangeMonitor .WaitForChanges(cancellationToken) .WithTimeout(Clock, UnconditionalWakeUpPeriod, cancellationToken)); }
protected override Task SleepAsync(Exception?error, CancellationToken cancellationToken) => OperationLogChangeMonitor?.WaitForChangesAsync(cancellationToken) .WithTimeout(Clock, UnconditionalWakeUpPeriod, cancellationToken) ?? Clock.DelayAsync(UnconditionalWakeUpPeriod, cancellationToken);