public Task <IScheduler> GenerateScheduler(Scheduler scheduler)
        {
            var props = new NameValueCollection();

            //使用简单线程池
            props["quartz.threadPool.type"] = "Quartz.Simpl.SimpleThreadPool, Quartz";
            //最大线程数
            props["quartz.threadPool.threadCount"] = scheduler.MaxThreads.ToString();
            //线程优先级:正常
            props["quartz.threadPool.threadPriority"] = "Normal";
            props["quartz.jobStore.misfireThreshold"] = "240000";

            var schedulerFactory = new StdSchedulerFactory(props);
            var s = schedulerFactory.GetScheduler();

            var schedulersModel = _schedulerConfigurationService.GetData();
            var Jobs            = schedulersModel.Jobs;

            if (Jobs != null)
            {
                foreach (var jobModel in Jobs)
                {
                    SchedulerJob schedulerJob = new SchedulerJob();
                    schedulerJob.Name           = jobModel.JobName;
                    schedulerJob.GroupName      = jobModel.GroupName;
                    schedulerJob.CronExpression = jobModel.CronExpression;

                    var j = schedulerJob.GenerateJob();
                    var t = schedulerJob.GenerateTrigger();
                    s.Result.ScheduleJob(j, t);
                }
            }
            return(s);
        }
Example #2
0
        public ITrigger GenerateTrigger(SchedulerJob sJob)
        {
            ITrigger trigger = TriggerBuilder.Create()
                               .WithIdentity(sJob.Name, sJob.Name)
                               .StartNow()
                               .WithCronSchedule(sJob.CronExpression)
                               .Build();

            return(trigger);
        }
Example #3
0
        public IJobDetail GenerateJob(SchedulerJob sJob)
        {
            MainJob.ScheduleActionFactory = _scheduleActionFactory;
            IJobDetail job = JobBuilder.Create <MainJob>()
                             .WithIdentity(sJob.Name, sJob.GroupName)
                             .UsingJobData("Name", sJob.Name)
                             .UsingJobData("ActionName", sJob.Name)
                             .Build();

            return(job);
        }