コード例 #1
0
        public void NotRerunOnFailure()
        {
            var success = new JobHistoryEntry(DateTime.UtcNow.Subtract(TimeSpan.FromMinutes(1)), _jobKey, JobResult.Failure);

            _schedule.GetExecutionPriority(_jobKey, success, success, DateTime.UtcNow)
            .Should().Be(0);
        }
コード例 #2
0
        public void ShouldBeReTriggeredWhenTimesUp()
        {
            var success = new JobHistoryEntry(DateTime.UtcNow.Subtract(TimeSpan.FromMinutes(2.01)), _jobKey, JobResult.Success);

            _schedule.GetExecutionPriority(_jobKey, success, success, DateTime.UtcNow)
            .Should().BeGreaterThan(0);
        }
コード例 #3
0
        public void ShouldRetry()
        {
            var failure = new JobHistoryEntry(DateTime.UtcNow.Subtract(TimeSpan.FromMinutes(1)), _jobKey, JobResult.Failure);

            _schedule.GetExecutionPriority(_jobKey, failure, null,
                                           DateTime.UtcNow).Should().Be(1);
        }
コード例 #4
0
        public void ShouldOnlyRunOnceSuccessful()
        {
            var success = new JobHistoryEntry(DateTime.UtcNow.Subtract(TimeSpan.FromMinutes(2)), _jobKey, JobResult.Success);

            _schedule.GetExecutionPriority(_jobKey, success, success,
                                           DateTime.UtcNow).Should().Be(0);
        }
コード例 #5
0
        public void ShouldRerunImmediately_IfFailedInTimeSlot()
        {
            var successInTimeSlot = new JobHistoryEntry(StartTime.AddMinutes(2), _jobKey, JobResult.Failure);

            _timeSlotSchedule.GetExecutionPriority(_jobKey, successInTimeSlot, null,
                                                   StartTime.Add(TimeSpan.FromSeconds(1))).Should().BeGreaterThan(0);
        }
コード例 #6
0
        public void ShouldOnlyRunOnceInTimeSlot()
        {
            var successInTimeSlot = new JobHistoryEntry(StartTime.AddMinutes(2), _jobKey, JobResult.Success);

            _timeSlotSchedule.GetExecutionPriority(_jobKey, successInTimeSlot, successInTimeSlot,
                                                   StartTime.Add(TimeSpan.FromSeconds(1))).Should().Be(0);
        }
コード例 #7
0
        public void CustomPriorityShouldBeUsed()
        {
            _schedule.Priority = 5;
            var success = new JobHistoryEntry(DateTime.UtcNow.Subtract(TimeSpan.FromMinutes(2.1)), _jobKey, JobResult.Success);

            _schedule.GetExecutionPriority(_jobKey, success, success, DateTime.UtcNow)
            .Should().Be(5);
        }
コード例 #8
0
        public void ShouldUseCustomRerunDelayAndNotRerunEarly()
        {
            _schedule.RetryDelay = TimeSpan.FromMinutes(1);
            var success = new JobHistoryEntry(DateTime.UtcNow.Subtract(TimeSpan.FromMinutes(0.75)), _jobKey, JobResult.Failure);

            _schedule.GetExecutionPriority(_jobKey, success, success, DateTime.UtcNow)
            .Should().Be(0);
        }
コード例 #9
0
        public void ShouldNotRetryInsideOfRetryDelay()
        {
            _schedule.RetryDelay = TimeSpan.FromMinutes(5);
            var failure = new JobHistoryEntry(DateTime.UtcNow.Subtract(TimeSpan.FromMinutes(2)), _jobKey, JobResult.Failure);

            _schedule.GetExecutionPriority(_jobKey, failure, null,
                                           DateTime.UtcNow).Should().Be(0);
        }
コード例 #10
0
        private JobHistoryEntry AddJobHistoryEntry(JobResult jobResult, TimeSpan timeBeforeNow)
        {
            var executionTime   = DateTime.UtcNow.Subtract(timeBeforeNow);
            var jobHistoryEntry = new JobHistoryEntry(executionTime, JobKey, jobResult, "SomeString");

            _jobHistory.Add(jobHistoryEntry);
            return(jobHistoryEntry);
        }
コード例 #11
0
        public void PriorityShouldIncreaseByMinutesDelay()
        {
            var success = new JobHistoryEntry(DateTime.UtcNow.Subtract(TimeSpan.FromMinutes(8.5)), _jobKey, JobResult.Success);
            // Priority is the delay in minutes from when it should have actually been triggered
            var increasedPriority = 6;

            _schedule.GetExecutionPriority(_jobKey, success, success, DateTime.UtcNow)
            .Should().Be(increasedPriority);
        }