| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104 | 
							- using wms.dto.request.hj;
 
- using wms.dto;
 
- using Quartz;
 
- using Quartz.Impl;
 
- using Quartz.Impl.Matchers;
 
- using Quartz.Impl.Triggers;
 
- namespace wms.api.Job
 
- {
 
-     /// <summary>
 
-     /// 任务调度器
 
-     /// </summary>
 
-     public class JobScheduler
 
-     {
 
-         public static IScheduler InitScheduler()
 
-         {
 
-             //创建调度器工厂
 
-             ISchedulerFactory factory = new StdSchedulerFactory();
 
-             //创建调度器对象
 
-             IScheduler scheduler = factory.GetScheduler().Result;
 
-             ////创建任务
 
-             //IJobDetail job = JobBuilder.Create<PostJob>().Build();
 
-             ////创建触发器
 
-             //ITrigger trigger = TriggerBuilder.Create().WithIdentity("TimeTrigger", "TimeGroup").WithSimpleSchedule(p => p.WithIntervalInMinutes(1).RepeatForever()).Build();
 
-             ////任务、触发器添至调度器对象
 
-             //scheduler.ScheduleJob(job, trigger);
 
-             //scheduler.Start();
 
-             return scheduler;
 
-         }
 
-         public static void Start(string jobName, Type jobType, string timeCorn)
 
-         {
 
-             var sched = InitScheduler();
 
-             var jobList = GetJobList(Const.JobGroupName).Result;
 
-             var job = jobList.Where(p => jobName == p.JobName);
 
-             if (job.Count() > 0)
 
-             {
 
-                 //if (job.First().JobStatus == "Stop")
 
-                 {
 
-                     sched.DeleteJob(new JobKey(jobName, Const.JobGroupName));
 
-                     StartJob(jobName, jobType, timeCorn);
 
-                 }
 
-                 //else
 
-                 //{
 
-                 //    ResumeAsync(jobName, Const.JobGroupName);
 
-                 //}
 
-             }
 
-             else
 
-             {
 
-                 StartJob(jobName, jobType, timeCorn);
 
-             }
 
-         }
 
-         public static async Task<List<SysJobDto>> GetJobList(string jobGroup)
 
-         {
 
-             var result = new List<SysJobDto>();
 
-             try
 
-             {
 
-                 var group = await InitScheduler().GetJobGroupNames();
 
-                 var currentlyExecutingJobs = await InitScheduler().GetCurrentlyExecutingJobs();
 
-                 var matcher = GroupMatcher<JobKey>.GroupEquals(jobGroup);
 
-                 var jobs = await InitScheduler().GetJobKeys(matcher);
 
-                 foreach (var item in jobs)
 
-                 {
 
-                     var triggers = await InitScheduler().GetTriggersOfJob(item);
 
-                     var state = await InitScheduler().GetTriggerState(triggers.First().Key);
 
-                     var job = InitScheduler().GetJobDetail(item).Result;
 
-                     result.Add(new SysJobDto()
 
-                     {
 
-                         JobName = job.Key.Name,
 
-                         JobDesc = job.Description,
 
-                         JobStatus = state.ToString(),
 
-                         JobGroup = job.Key.Group
 
-                     });
 
-                 }
 
-                 return result;
 
-             }
 
-             catch (Exception ex)
 
-             { return result; }
 
-         }
 
-         public static void StartJob(string jobName, Type jobType, string timeCorn)
 
-         {
 
-             var scheduler = InitScheduler(); //获取对象
 
-             //创建任务
 
-             JobDetailImpl jobDetail = new JobDetailImpl();
 
-             jobDetail.Name = jobName;
 
-             jobDetail.JobType = jobType;
 
-             jobDetail.Group = Const.JobGroupName;
 
-             //创建触发器
 
-             CronTriggerImpl trigger = new CronTriggerImpl();
 
-             trigger.Name = jobName;
 
-             trigger.Group = Const.TiggerGroupName;
 
-             trigger.CronExpressionString = timeCorn;
 
-             //任务、触发器添至调度器对象
 
-             scheduler.ScheduleJob(jobDetail, trigger);
 
-             if (!scheduler.IsShutdown)
 
-             {
 
-                 scheduler.Start();
 
-             }
 
-         }
 
-     }
 
- }
 
 
  |