public async Task CanRunJobs() { var job = new HelloWorldJob(); Assert.Equal(0, job.RunCount); await job.RunAsync(); Assert.Equal(1, job.RunCount); await job.RunContinuousAsync(iterationLimit : 2); Assert.Equal(3, job.RunCount); var sw = Stopwatch.StartNew(); await job.RunContinuousAsync(cancellationToken : TimeSpan.FromMilliseconds(100).ToCancellationToken()); sw.Stop(); Assert.InRange(sw.Elapsed, TimeSpan.FromMilliseconds(100), TimeSpan.FromMilliseconds(800)); var jobInstance = new HelloWorldJob(); Assert.NotNull(jobInstance); Assert.Equal(0, jobInstance.RunCount); Assert.Equal(JobResult.Success, await jobInstance.RunAsync()); Assert.Equal(1, jobInstance.RunCount); }
public async Task CanCancelContinuousJobs() { var job = new HelloWorldJob(); await job.RunContinuousAsync(TimeSpan.FromSeconds(1), 5, TimeSpan.FromMilliseconds(100).ToCancellationToken()); Assert.Equal(1, job.RunCount); await JobRunner.RunContinuousAsync(typeof(HelloWorldJob), instanceCount: 5, iterationLimit: 10000, cancellationToken: TimeSpan.FromMilliseconds(500).ToCancellationToken(), interval: TimeSpan.FromMilliseconds(1)); }
public async Task CanCancelContinuousJobs() { var job = new HelloWorldJob(); await job.RunContinuousAsync(TimeSpan.FromSeconds(1), 5, TimeSpan.FromMilliseconds(100).ToCancellationToken()); Assert.Equal(1, job.RunCount); await JobRunner.RunContinuousAsync(typeof(HelloWorldJob), instanceCount : 5, iterationLimit : 10000, cancellationToken : TimeSpan.FromMilliseconds(500).ToCancellationToken(), interval : TimeSpan.FromMilliseconds(1)); }
public async Task CanRunJobs() { var job = new HelloWorldJob(); Assert.Equal(0, job.RunCount); await job.RunAsync(); Assert.Equal(1, job.RunCount); await job.RunContinuousAsync(iterationLimit: 2); Assert.Equal(3, job.RunCount); var sw = Stopwatch.StartNew(); await job.RunContinuousAsync(cancellationToken: TimeSpan.FromMilliseconds(100).ToCancellationToken()); sw.Stop(); Assert.InRange(sw.Elapsed, TimeSpan.FromMilliseconds(100), TimeSpan.FromMilliseconds(150)); var jobInstance = JobRunner.CreateJobInstance(typeof(HelloWorldJob).AssemblyQualifiedName); Assert.NotNull(jobInstance); Assert.Equal(0, ((HelloWorldJob)jobInstance).RunCount); Assert.Equal(JobResult.Success, await jobInstance.RunAsync()); Assert.Equal(1, ((HelloWorldJob)jobInstance).RunCount); }
public async Task CanCancelContinuousJobs() { using (TestSystemClock.Install()) { var job = new HelloWorldJob(); var jobTask = job.RunContinuousAsync(TimeSpan.FromSeconds(1), 5, TimeSpan.FromMilliseconds(100).ToCancellationToken()); await SystemClock.SleepAsync(TimeSpan.FromSeconds(2)); await jobTask; Assert.Equal(1, job.RunCount); var runnerTask = new JobRunner(job, Log, instanceCount: 5, iterationLimit: 10000, interval: TimeSpan.FromMilliseconds(1)).RunAsync(TimeSpan.FromMilliseconds(500).ToCancellationToken()); await SystemClock.SleepAsync(TimeSpan.FromSeconds(1)); await runnerTask; } }
public async Task CanRunJobsWithInterval() { using (TestSystemClock.Install()) { var time = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc); TestSystemClock.SetFrozenTime(time); TestSystemClock.UseFakeSleep(); var job = new HelloWorldJob(Log); var interval = TimeSpan.FromHours(.75); await job.RunContinuousAsync(iterationLimit : 2, interval : interval); Assert.Equal(2, job.RunCount); Assert.Equal(interval, (SystemClock.UtcNow - time)); } }
public async Task CanCancelContinuousJobs() { using (TestSystemClock.Install()) { var job = new HelloWorldJob(Log); using (var timeoutCancellationTokenSource = new CancellationTokenSource(100)) { await job.RunContinuousAsync(TimeSpan.FromSeconds(1), 5, timeoutCancellationTokenSource.Token); } Assert.Equal(1, job.RunCount); using (var timeoutCancellationTokenSource = new CancellationTokenSource(500)) { var runnerTask = new JobRunner(job, Log, instanceCount: 5, iterationLimit: 10000, interval: TimeSpan.FromMilliseconds(1)).RunAsync(timeoutCancellationTokenSource.Token); await SystemClock.SleepAsync(TimeSpan.FromSeconds(1)); await runnerTask; } } }