public async Task <ResponseData> UpDataScheduler(string id, UpdateScheduler updateScheduler)
        {
            var      Result = _verificationUpdateSchedulerData.Validate(updateScheduler);
            ITrigger trigger;

            if (!Result.IsValid)
            {
                return(new ResponseData(Result.ToString(), "", StatusCode.Fail));
            }
            var selectData = await _Database.SingleAsync <DataBaseScheduler>("where id = @0", id);

            if (string.IsNullOrEmpty(selectData.Interval) && selectData.ExecuteReuslt == 1)
            {
                return(new ResponseData("非循环任务不能进行修改", "", StatusCode.Fail));
            }
            //暂停任务
            await scheduler.PauseJob(new JobKey(updateScheduler.Name));

            var job = await scheduler.GetJobDetail(new JobKey(updateScheduler.Name));

            await scheduler.UnscheduleJob(new TriggerKey(updateScheduler.Name)); // 取消触发器

            // 检查更改的数据是否有间隔时间
            if (string.IsNullOrEmpty(updateScheduler.Interval))
            {
                trigger = TriggerBuilder.Create()
                          .WithIdentity(updateScheduler.Name)
                          .StartAt(Convert.ToDateTime(updateScheduler.PresetTime))
                          .Build();
            }
            else
            {
                var      arryDate = ConversionTime.ChangeInterval(updateScheduler.Interval);
                TimeSpan timeSpan = new TimeSpan(arryDate[0], arryDate[1], arryDate[2], arryDate[3]);
                trigger = TriggerBuilder.Create()
                          .WithIdentity(updateScheduler.Name)
                          .WithSimpleSchedule(x => x.WithInterval(timeSpan).RepeatForever())
                          .StartAt(Convert.ToDateTime(updateScheduler.PresetTime))
                          .Build();
            }

            // 把任务和触发器绑定
            await scheduler.ScheduleJob(job, trigger);

            Sql sql = new Sql();

            sql.Set("PresetTime = @0, Interval = @1", updateScheduler.PresetTime, updateScheduler.Interval)
            .Where("id = @0", id);

            if (await _Database.UpdateAsync <DataBaseScheduler>(sql) < 0)
            {
                return(new ResponseData("修改失败", "", StatusCode.Fail));
            }
            // 重启任务
            await scheduler.ResumeJob(new JobKey(updateScheduler.Name));

            return(new ResponseData("修改成功", "", StatusCode.Success));
        }
        public async Task <bool> AddSchedulerType(DataBaseScheduler OperationSqlData)
        {
            scheduler = await _schedulerFactory.GetScheduler();

            await scheduler.Start();

            // 创建任务
            var jobDetail = JobBuilder.Create <ExecuteJob>()
                            .WithIdentity(OperationSqlData.Name)
                            .Build();

            // 根据任务的类型 来创建触发器
            switch (OperationSqlData.TaskType)
            {
            case "OneOff":
                _trigger = TriggerBuilder.Create()
                           .StartNow()
                           .Build();
                break;

            case "TimedTask":
                if (string.IsNullOrEmpty(OperationSqlData.Interval))
                {
                    _trigger = TriggerBuilder.Create()
                               .WithIdentity(OperationSqlData.Name)
                               .StartAt(Convert.ToDateTime(OperationSqlData.PresetTime))
                               .Build();
                }
                else
                {
                    var      arryDate = ConversionTime.ChangeInterval(OperationSqlData.Interval);
                    TimeSpan timeSpan = new TimeSpan(arryDate[0], arryDate[1], arryDate[2], arryDate[3]);
                    _trigger = TriggerBuilder.Create()
                               .WithIdentity(OperationSqlData.Name)
                               .WithSimpleSchedule(x => x.WithInterval(timeSpan).RepeatForever())
                               .StartAt(Convert.ToDateTime(OperationSqlData.PresetTime))
                               .Build();
                }
                break;

            default:
                return(false);
            }
            // 绑定任务和触发器
            await scheduler.ScheduleJob(jobDetail, _trigger);

            // 添加监听
            scheduler.ListenerManager.AddJobListener(new JobListen());
            return(true);
        }