Exemple #1
0
 public IJobDetail BuildJobDetail(ScheduledJobSetting scheduledJobSetting)
 {
     return(GetJobBuilder()
            .WithIdentity($"{scheduledJobSetting.Name} Job")
            .WithDescription($"{scheduledJobSetting.Name} Job")
            .Build());
 }
Exemple #2
0
        public async Task AddScheduledJob(IScheduler scheduler, ScheduledJobSetting scheduledJobSetting,
                                          CancellationToken cancellationToken = default)
        {
            IJobDetail jobDetail = BuildJobDetail(scheduledJobSetting);
            ITrigger   trigger   = BuildTrigger(scheduledJobSetting);

            await scheduler.ScheduleJob(jobDetail, trigger, cancellationToken);
        }
Exemple #3
0
        public ITrigger BuildTrigger(ScheduledJobSetting scheduledJobSetting)
        {
            string cronSchedule = GetCronExpression(scheduledJobSetting);

            return(TriggerBuilder.Create()
                   .WithIdentity($"{scheduledJobSetting.Name} Trigger")
                   .WithCronSchedule(cronSchedule)
                   .WithDescription($"{scheduledJobSetting.Name} Trigger")
                   .Build());
        }
Exemple #4
0
        public void MissingCronExpressionShouldApplyDefaultCronExpression()
        {
            ScheduledJobSetting scheduledJobSetting = new ScheduledJobSetting();
            var configurator = new DeleteExpiredTokensSchedulerConfigurator();

            var expectedResult = SchedulerConfiguratorBase <DeleteExpiredTokensScheduledJob> .DefaultCronExpression;
            var actualResult   = configurator.GetCronExpression(scheduledJobSetting);

            Assert.AreEqual(expectedResult, actualResult);
        }
Exemple #5
0
        public string GetCronExpression(ScheduledJobSetting scheduledJobSetting)
        {
            bool isCronExpressionValid = scheduledJobSetting?.CronExpression != null && CronExpression.IsValidExpression(scheduledJobSetting.CronExpression);

            if (isCronExpressionValid)
            {
                return(scheduledJobSetting.CronExpression);
            }

            _logger.Warn($"Invalid cron expression provided for scheduled job: {scheduledJobSetting.Name}");
            return(DefaultCronExpression);
        }
Exemple #6
0
        public void ValidCronExpressionShouldApplyProvidedCronExpression()
        {
            string validCronSchedule = "0 0/20 * 1/1 * ? *";
            ScheduledJobSetting scheduledJobSetting = new ScheduledJobSetting()
            {
                CronExpression = validCronSchedule
            };

            var configurator = new DeleteExpiredTokensSchedulerConfigurator();

            var expectedResult = validCronSchedule;
            var actualResult   = configurator.GetCronExpression(scheduledJobSetting);

            Assert.AreEqual(expectedResult, actualResult);
        }
Exemple #7
0
        public async Task AddSchedulerJobShouldCallScheduleJobOnScheduler()
        {
            IScheduler        scheduler         = A.Fake <IScheduler>();
            CancellationToken cancellationToken = default(CancellationToken);

            string validCronSchedule = "0 0/20 * 1/1 * ? *";
            ScheduledJobSetting scheduledJobSetting = new ScheduledJobSetting()
            {
                CronExpression = validCronSchedule
            };

            var        configurator = new DeleteExpiredTokensSchedulerConfigurator();
            IJobDetail jobDetail    = configurator.BuildJobDetail(scheduledJobSetting);
            ITrigger   trigger      = configurator.BuildTrigger(scheduledJobSetting);

            await configurator.AddScheduledJob(scheduler, scheduledJobSetting, cancellationToken);

            A.CallTo(
                () => scheduler.ScheduleJob(jobDetail, trigger, cancellationToken)).MustHaveHappened();
        }