public async Task CanRunJobs() { var job = new HelloWorldJob(); Assert.Equal(0, job.RunCount); await job.RunAsync(); Assert.Equal(1, job.RunCount); job.RunContinuous(iterationLimit: 2); Assert.Equal(3, job.RunCount); var sw = Stopwatch.StartNew(); job.RunContinuous(cancellationToken: TimeSpan.FromMilliseconds(100).ToCancellationToken()); sw.Stop(); Assert.InRange(sw.Elapsed, TimeSpan.FromMilliseconds(95), 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 void CanRunJobs() { var job = new HelloWorldJob(); Assert.Equal(0, job.RunCount); job.Run(); Assert.Equal(1, job.RunCount); job.RunContinuous(iterationLimit: 2); Assert.Equal(3, job.RunCount); job.RunContinuous(token: new CancellationTokenSource(TimeSpan.FromMilliseconds(10)).Token); Assert.True(job.RunCount > 10); var jobInstance = JobRunner.CreateJobInstance(typeof(HelloWorldJob).AssemblyQualifiedName); Assert.NotNull(jobInstance); Assert.Equal(0, ((HelloWorldJob)jobInstance).RunCount); Assert.Equal(JobResult.Success, jobInstance.Run()); Assert.Equal(1, ((HelloWorldJob)jobInstance).RunCount); }
public void CanRunJobs() { var job = new HelloWorldJob(); Assert.Equal(0, job.RunCount); job.Run(); Assert.Equal(1, job.RunCount); job.RunContinuous(iterationLimit: 2); Assert.Equal(3, job.RunCount); var sw = new Stopwatch(); sw.Start(); job.RunContinuous(token: new CancellationTokenSource(TimeSpan.FromMilliseconds(100)).Token); 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, jobInstance.Run()); Assert.Equal(1, ((HelloWorldJob)jobInstance).RunCount); }
public async Task CanCancelContinuousJobs() { using (TestSystemClock.Install()) { var job = new HelloWorldJob(); job.RunContinuous(TimeSpan.FromSeconds(1), 5, TimeSpan.FromMilliseconds(100).ToCancellationToken()); 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 void CanCancelContinuousJobs() { var job = new HelloWorldJob(); var tokenSource = new CancellationTokenSource(TimeSpan.FromMilliseconds(100)); job.RunContinuous(TimeSpan.FromSeconds(1), 5, tokenSource.Token); Assert.Equal(1, job.RunCount); tokenSource = new CancellationTokenSource(TimeSpan.FromMilliseconds(500)); await JobRunner.RunContinuousAsync(typeof(HelloWorldJob), instanceCount: 5, iterationLimit: 10000, cancellationToken: tokenSource.Token, interval: TimeSpan.FromMilliseconds(1)); }