public static IJobRegistrator RegiserJob <TJob>( this IJobRegistrator jobRegistrator, Func <IEnumerable <TriggerBuilder> > triggers) where TJob : class, IJob { return(jobRegistrator.RegiserJob <TJob>(triggers())); }
public static IJobRegistrator RegiserCRONJob <TJob>( this IJobRegistrator jobRegistrator, Action <JobOptions> jobOptions) where TJob : class, IJob { var options = new JobOptions(); jobOptions?.Invoke(options); return(jobRegistrator.RegiserJob <TJob>( options.Triggers?.Select(n => n.CreateTriggerBuilder()) )); }
public static IJobRegistrator RegiserJob <TJob>( this IJobRegistrator jobRegistrator, IEnumerable <TriggerBuilder> triggerBuilders) where TJob : class, IJob { jobRegistrator.Services.AddTransient <TJob>(); var jobDetail = JobBuilder.Create <TJob>().Build(); List <ITrigger> triggers = new List <ITrigger>(triggerBuilders.Count()); foreach (var triggerBuilder in triggerBuilders) { triggers.Add(triggerBuilder.ForJob(jobDetail).Build()); } jobRegistrator.Services.AddSingleton <IScheduleJob>(provider => new ScheduleJob(jobDetail, triggers)); return(jobRegistrator); }