Example #1
0
        public async Task AddOrUpdateJob(Job job, CancellationToken ct)
        {
            var jobResult = scheduledJobBuilder.BuildJob(job);

            if (jobResult.IsFailure)
            {
                logger.LogError($"{jobResult.Error}. Message: {job}");
                return;
            }

            var triggerResult = scheduledJobBuilder.BuildTriggers(job);

            if (triggerResult.IsFailure)
            {
                logger.LogError($"{triggerResult.Error}. Message: {job}");
                return;
            }

            await RemoveJobIfAlreadyExists(job.JobIdentifier, job.SubscriptionName, ct);

            if (job.IsActive)
            {
                await scheduler.ScheduleJob(jobResult.Value, triggerResult.Value, false, ct);
            }
        }
Example #2
0
        public void StartAt_On_Trigger_Should_Match_Whats_In_The_Message_Schedule()
        {
            var job     = DefaultJob;
            var startAt = DateTime.Now.AddMinutes(3).ToUniversalTime();

            job.Update(null, startAt, null, RepeatEndStrategy.Never, RepeatInterval.Monthly, 0, "test");

            var triggers = scheduledJobBuilder
                           .BuildTriggers(job)
                           .Value;

            triggers[0].StartTimeUtc.Should().BeCloseTo(startAt, 1000);
        }