Example #1
0
 /// <summary>
 /// 创建Quartz
 /// </summary>
 /// <param name="model"></param>
 /// <returns></returns>
 public string CreateOrUpdateQuartz(QuartzEditModel model)
 {
     try
     {
         if (string.IsNullOrWhiteSpace(model.JobGroup))
         {
             throw new Exception("Job分组不能为空!");
         }
         if (string.IsNullOrWhiteSpace(model.JobName))
         {
             throw new Exception("Job名不能为空!");
         }
         if (string.IsNullOrWhiteSpace(model.Cron))
         {
             throw new Exception("Cron表达式不能为空不能为空!");
         }
         if (string.IsNullOrWhiteSpace(model.JobClass))
         {
             throw new Exception("Job类名不能为空!");
         }
         _sql.OpenDb();
         if (string.IsNullOrEmpty(model.JobInfoId))
         {
             DataTable dt = _sql.Query("SELECT JOB_CLASS_NAME FROM QRTZ_JOB_DETAILS WITH(NOLOCK) WHERE JOB_GROUP = @group AND JOB_NAME = @name", new Dictionary <string, object> {
                 { "@group", model.JobGroup }, { "@name", model.JobName }
             });
             if (dt != null && dt.Rows.Count > 0)
             {
                 throw new Exception("当前Job已存在,请更改组名或Job名!");
             }
             quartz.CreateJob(_config.Job_Assembly, model);
             JobInfo job = new JobInfo();
             model.FillTableWithModel <JobInfo>(job);
             job.JobStatus = Constants.JobStatusRunning;
             _sql.Create(job);
         }
         else
         {
             JobInfo job = _sql.Search <JobInfo>(model.JobInfoId);
             model.FillTableWithModel <JobInfo>(job);
             _sql.Update(job);
         }
         return(Constants.SaveSuccessMssg);
     }
     catch (Exception ex)
     {
         _log.Error(ex);
         throw ex;
     }
     finally
     {
         _sql.CloseDb();
     }
 }