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); } }
public CronJobService(ICronJobRepository cronJobRepository, IMapper mapper, JobCronTrigger jobCronTrigger) { _jobCronTrigger = jobCronTrigger; _cronJobRepository = cronJobRepository; _mapper = mapper; }
public CronJobService(ICronJobRepository cronJobRepository, IMapper mapper) { _cronJobRepository = cronJobRepository; _mapper = mapper; }
public SchedulerFactory(ILogProvider logProvider, IJobFactory jobFactory, ICronJobRepository cronJobsRepository) { _logProvider = logProvider; _jobFactory = jobFactory; _cronJobsRepository = cronJobsRepository; }