public async Task MaxRuntimeIsRespected() { IJobScheduler scheduler = new JobScheduler(_builder); var job = new MaxRuntimeJob(new NoRetry(), TimeSpan.FromMilliseconds(50)); var jobRunner = scheduler.ScheduleJobInternal(new JobScheduler.JobContainer(job)); await jobRunner.WaitForJob(); jobRunner.Elapsed.Should().BeCloseTo(job.MaxRuntime !.Value, TimeSpan.FromMilliseconds(20)); }
public async Task MaxRuntimeIsRespectedAndTaskRetriedWithBackoff() { IJobScheduler scheduler = new JobScheduler(_builder); var maxRetries = 3; var job = new MaxRuntimeJob(new ExponentialBackoffRetry(TimeSpan.FromMilliseconds(10), maxRetries), TimeSpan.FromMilliseconds(80)); var jobRunner = scheduler.ScheduleJobInternal(new JobScheduler.JobContainer(job)); await jobRunner.WaitForJob(); jobRunner.Elapsed.Should().BeCloseTo(job.MaxRuntime !.Value, TimeSpan.FromMilliseconds(20)); jobRunner.Retries.Should().Be(maxRetries); }