示例#1
0
 public static IJobRegistrator RegiserJob <TJob>(
     this IJobRegistrator jobRegistrator,
     Func <IEnumerable <TriggerBuilder> > triggers)
     where TJob : class, IJob
 {
     return(jobRegistrator.RegiserJob <TJob>(triggers()));
 }
示例#2
0
        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())
                       ));
        }
示例#3
0
        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);
        }