Beispiel #1
0
        private static async Task ScheduleJobsAsync(IScheduler scheduler, ICronJobRepository jobsRepository)
        {
            var jobs = (await jobsRepository.GetCronJobsAsync())
                       .Where(cj => cj.Enabled);

            foreach (var job in jobs)
            {
                var jobDataMap = new JobDataMap((IDictionary <string, object>) new Dictionary <string, object>
                {
                    { "CronJob", job }
                });

                var jobDetail = JobBuilder.Create <Job>()
                                .SetJobData(jobDataMap)
                                .WithIdentity(job.Id.ToString())
                                .Build();

                var triggers = new List <ITrigger>
                {
                    TriggerBuilder.Create()
                    .WithIdentity(job.Id.ToString())
                    .WithCronSchedule(job.CronExpression)
                    .Build()
                };

                if (job.StartImmediately)
                {
                    triggers.Add(
                        TriggerBuilder.Create()
                        .WithIdentity($"{job.Id.ToString()} Immediate")
                        .StartNow()
                        .Build()
                        );
                }

                await scheduler.ScheduleJob(jobDetail, new ReadOnlyCollection <ITrigger>(triggers), false, CancellationToken.None);
            }
        }
Beispiel #2
0
 public CronJobService(ICronJobRepository cronJobRepository, IMapper mapper, JobCronTrigger jobCronTrigger)
 {
     _jobCronTrigger    = jobCronTrigger;
     _cronJobRepository = cronJobRepository;
     _mapper            = mapper;
 }
Beispiel #3
0
 public CronJobService(ICronJobRepository cronJobRepository, IMapper mapper)
 {
     _cronJobRepository = cronJobRepository;
     _mapper            = mapper;
 }
Beispiel #4
0
 public SchedulerFactory(ILogProvider logProvider, IJobFactory jobFactory, ICronJobRepository cronJobsRepository)
 {
     _logProvider        = logProvider;
     _jobFactory         = jobFactory;
     _cronJobsRepository = cronJobsRepository;
 }