Ejemplo n.º 1
0
        /// <summary>
        /// 根据id删除作业
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        public JsonResult Delete(int id)
        {
            var model = DataBaseLogic.GetJobQuartzByIdList(id);

            StdSchedulerManager.RemoveJob(model);
            return(Json(DataBaseLogic.Delete(id)));
        }
Ejemplo n.º 2
0
        public async Task <JsonResult> ScheduleJob(ScheduleJobInput input)
        {
            var status = new OperateStatus();

            try
            {
                if (!input.ReplaceExists)
                {
                    //if (StdSchedulerManager.CheckExists(new TriggerKey(input.TriggerName, input.TriggerGroup)))
                    //{
                    //    status.Message = "指定的触发器已经存在,请重新指定名称";
                    //    return Json(status);
                    //}
                    if (await StdSchedulerManager.CheckExists(new JobKey(input.JobName, input.JobGroup)))
                    {
                        status.Message = "指定的作业名已经存在,请重新指定名称";
                        return(Json(status));
                    }
                }
                input.IsSave = true;
                await StdSchedulerManager.ScheduleJob(input);

                status.ResultSign = ResultSign.Successful;
                status.Message    = "保存调度作业成功";
            }
            catch (Exception ex)
            {
                status.Message = ex.Message;
            }
            return(Json(status));
        }
Ejemplo n.º 3
0
 public JsonResult CalcRunTime(string cronExpression)
 {
     try
     {
         return(Json(StdSchedulerManager.GetTaskeFireTime(cronExpression, 5)));
     }
     catch
     {
         return(null);
     }
 }
Ejemplo n.º 4
0
        public async Task <JsonResult> DeleteJob(JobDetailInput input)
        {
            var status = new OperateStatus();

            if (await StdSchedulerManager.DeleteJob(input.JobName, input.JobGroup))
            {
                status.ResultSign = ResultSign.Successful;
                status.Message    = Chs.Successful;
            }
            return(Json(status));
        }
Ejemplo n.º 5
0
        public JsonResult DeleteJob(JobDetailInput input)
        {
            var status = new OperateStatus();

            if (StdSchedulerManager.DeleteJob(input.JobName, input.JobGroup))
            {
                status.ResultSign = ResultSign.Successful;
                status.Message    = "删除作业成功";
            }
            return(Json(status));
        }
Ejemplo n.º 6
0
 public JsonResult GetDetailJobDataMap(JobDetailInput input)
 {
     if (!input.JobGroup.IsNullOrEmpty() && !input.JobName.IsNullOrEmpty())
     {
         var detail = StdSchedulerManager.GetJobDetail(new JobKey(input.JobName, input.JobGroup));
         var maps   = detail.JobDataMap;
         return(Json(maps.Select(map => new Parameters {
             Key = map.Key, Value = map.Value
         }).ToList()));
     }
     return(null);
 }
Ejemplo n.º 7
0
        public ViewResultBase CalendarEdit(string calendarName)
        {
            var model = new SystemQuartzCalendarModel();

            if (!calendarName.IsNullOrEmpty())
            {
                model.ReplaceExists = true;
                var calendar = (CronCalendar)StdSchedulerManager.GetCalendar(calendarName);
                model.Expression  = calendar.CronExpression.ToString();
                model.Description = calendar.Description;
            }
            return(View(model));
        }
Ejemplo n.º 8
0
        public async Task <JsonResult> GetAllJobs()
        {
            IList <QuartzOutput> models = new List <QuartzOutput>();
            var jobGroups = await StdSchedulerManager.GetJobGroupNames();

            foreach (string group in jobGroups)
            {
                var groupMatcher = GroupMatcher <JobKey> .GroupContains(group);

                var jobKeys = await StdSchedulerManager.GetJobKeys(groupMatcher);

                foreach (var jobKey in jobKeys)
                {
                    var detail = await StdSchedulerManager.GetJobDetail(jobKey);

                    var triggers = await StdSchedulerManager.GetTriggersOfJob(jobKey);

                    foreach (ITrigger trigger in triggers)
                    {
                        var model = new QuartzOutput
                        {
                            JobGroup       = group,
                            JobName        = jobKey.Name,
                            JobDescription = detail.Description,
                            TriggerState   = "Complete",
                            NamespaceName  = detail.JobType.Namespace,
                            ClassName      = detail.JobType.FullName
                        };
                        model.TriggerName  = trigger.Key.Name;
                        model.TriggerGroup = trigger.Key.Group;
                        model.TriggerType  = trigger.GetType().Name;
                        model.TriggerState = (await StdSchedulerManager.GetTriggerState(trigger.Key)).ToString();
                        var nextFireTime = trigger.GetNextFireTimeUtc();
                        if (nextFireTime.HasValue)
                        {
                            model.NextFireTime = TimeZone.CurrentTimeZone.ToLocalTime(nextFireTime.Value.DateTime);
                        }

                        var previousFireTime = trigger.GetPreviousFireTimeUtc();
                        if (previousFireTime.HasValue)
                        {
                            model.PreviousFireTime =
                                TimeZone.CurrentTimeZone.ToLocalTime(previousFireTime.Value.DateTime);
                        }
                        models.Add(model);
                    }
                }
            }
            return(JsonForGridLoadOnce(models.OrderBy(o => o.NextFireTime)));
        }
Ejemplo n.º 9
0
        public async Task <JsonResult> CalendarEdit(string calendarName)
        {
            var model = new CalendarInput();

            if (!calendarName.IsNullOrEmpty())
            {
                model.ReplaceExists = true;
                var calendar = await StdSchedulerManager.GetCalendar(calendarName);

                //model.Expression = ((CronCalendar)calendar).CronExpression.ToString();
                model.Description = calendar.Description;
            }
            return(Json(model));
        }
Ejemplo n.º 10
0
        public JsonResult GetCalendar()
        {
            var calendars = StdSchedulerManager.GetCalendarNames().ToList().Select(n => new
            {
                Name     = n,
                Calendar = StdSchedulerManager.GetCalendar(n)
            }).ToDictionary(n => n.Name, n => n.Calendar);
            IList <SystemQuartzCalendarModel> calendarModels = calendars.Select(cal => new SystemQuartzCalendarModel
            {
                Description  = cal.Value.Description,
                CalendarName = cal.Key
            }).ToList();

            return(Json(calendarModels));
        }
Ejemplo n.º 11
0
        public JsonResult ResumeJob(JobDetailInput input)
        {
            var status = new OperateStatus();

            try
            {
                StdSchedulerManager.ResumeJob(input.JobName, input.JobGroup);
                status.ResultSign = ResultSign.Successful;
                status.Message    = "恢复作业成功";
            }
            catch (Exception ex)
            {
                status.Message = ex.Message;
            }
            return(Json(status));
        }
Ejemplo n.º 12
0
        public JsonResult ResumeAll()
        {
            var status = new OperateStatus();

            try
            {
                StdSchedulerManager.ResumeAll();
                status.ResultSign = ResultSign.Successful;
                status.Message    = "恢复作业成功";
            }
            catch (Exception ex)
            {
                status.Message = ex.Message;
            }
            return(Json(status));
        }
Ejemplo n.º 13
0
        public async Task <JsonResult> GetCalendar()
        {
            var getCalendarNames = (await StdSchedulerManager.GetCalendarNames()).ToList();
            var calendars        = getCalendarNames.Select(n => new
            {
                Name     = n,
                Calendar = StdSchedulerManager.GetCalendar(n)
            }).ToDictionary(n => n.Name, n => n.Calendar);
            IList <CalendarInput> calendarModels = calendars.Select(cal => new CalendarInput
            {
                Description  = cal.Value.Result.Description,
                CalendarName = cal.Key
            }).ToList();

            return(JsonForGridLoadOnce(calendarModels));
        }
Ejemplo n.º 14
0
        public async Task <JsonResult> PauseJob(JobDetailInput input)
        {
            var status = new OperateStatus();

            try
            {
                await StdSchedulerManager.PauseJob(input.JobName, input.JobGroup);

                status.ResultSign = ResultSign.Successful;
                status.Message    = "暂停作业成功";
            }
            catch (Exception ex)
            {
                status.Message = ex.Message;
            }
            return(Json(status));
        }
Ejemplo n.º 15
0
        public async Task <JsonResult> PauseAll()
        {
            var status = new OperateStatus();

            try
            {
                await StdSchedulerManager.PauseAll();

                status.ResultSign = ResultSign.Successful;
                status.Message    = "暂停所有作业成功";
            }
            catch (Exception ex)
            {
                status.Message = ex.Message;
            }
            return(Json(status));
        }
Ejemplo n.º 16
0
        /// <summary>
        ///  关闭任务
        /// </summary>
        /// <param name="id">任务id</param>
        /// <returns></returns>
        public JsonResult CloseTask(int id)
        {
            var           model = DataBaseLogic.GetJobQuartzByIdList(id);
            OperateStatus statu = new OperateStatus();

            try
            {
                StdSchedulerManager.PauseJobGroup(model.JobGroup);
                statu.Message    = "暂停成功";
                statu.ResultSign = ResultSign.Successful;
            }
            catch (Exception)
            {
                statu.Message    = "暂停失败";
                statu.ResultSign = ResultSign.Successful;
            }
            return(Json(statu));
        }
Ejemplo n.º 17
0
        public JsonResult DeleteCalendar(string calendarName)
        {
            var status = new OperateStatus();

            try
            {
                if (StdSchedulerManager.DeleteCalendar(calendarName))
                {
                    status.ResultSign = ResultSign.Successful;
                    status.Message    = "删除日历成功";
                }
            }
            catch (Exception ex)
            {
                status.Message = ex.Message;
            }
            return(Json(status));
        }
Ejemplo n.º 18
0
        public async Task <JsonResult> JobEdit(JobDetailInput input)
        {
            var output = new QuartzOutput();

            if (!input.JobName.IsNullOrEmpty() && !input.JobGroup.IsNullOrEmpty())
            {
                var key = new JobKey(input.JobName, input.JobGroup);
                //作业详情
                var detal = await StdSchedulerManager.GetJobDetail(key);

                output.NamespaceName = detal.JobType.Namespace;
                output.ClassName     = detal.JobType.Name;
                //触发器
                var triggerKey = new TriggerKey(input.TriggerName, input.TriggerGroup);
                var trigger    = await StdSchedulerManager.GetTrigger(triggerKey);

                output.JobType        = detal.JobType.FullName;
                output.JobGroup       = detal.Key.Group;
                output.JobName        = detal.Key.Name;
                output.JobDescription = detal.Description;

                output.TriggerType        = trigger.GetType().Name;
                output.TriggerName        = trigger.Key.Name;
                output.TriggerGroup       = trigger.Key.Group;
                output.TriggerDescription = trigger.Description;

                //获取trigger类型
                switch (trigger.GetType().Name)
                {
                case "SimpleTriggerImpl":
                    var simpleTriggerImpl = (SimpleTriggerImpl)trigger;
                    output.Interval = simpleTriggerImpl.RepeatInterval;
                    break;

                case "CronTriggerImpl":
                    //获取表达式
                    var cronTriggerImpl = (CronTriggerImpl)trigger;
                    output.Expression = cronTriggerImpl.CronExpressionString;
                    break;
                }
                output.ReplaceExists = true;
            }
            return(Json(output));
        }
Ejemplo n.º 19
0
        public async Task <JsonResult> DeleteCalendar(IdInput <string> input)
        {
            var status = new OperateStatus();

            try
            {
                foreach (var id in input.Id.Split(','))
                {
                    if (await StdSchedulerManager.DeleteCalendar(id))
                    {
                        status.ResultSign = ResultSign.Successful;
                        status.Message    = "删除日历成功";
                    }
                }
            }
            catch (Exception ex)
            {
                status.Message = ex.Message;
            }
            return(Json(status));
        }
Ejemplo n.º 20
0
        public JsonResult SaveCalendar(CalendarInput input)
        {
            var status = new OperateStatus();

            try
            {
                if (!input.ReplaceExists && StdSchedulerManager.GetCalendar(input.CalendarName) != null)
                {
                    status.Message = "日历已存在,请换个其它名称或选择替换现有日历";
                    return(Json(status));
                }
                StdSchedulerManager.AddCalendar(input);
                status.ResultSign = ResultSign.Successful;
                status.Message    = "保存日历成功";
            }
            catch (Exception ex)
            {
                status.Message = ex.Message;
            }
            return(Json(status));
        }
Ejemplo n.º 21
0
        /// <summary>
        /// 新增/编辑作业
        /// </summary>
        /// <param name="jobQuartz">作业实体参数</param>
        /// <returns></returns>
        public JsonResult AddJobQuartz(JobQuartzOutPut jobQuartz)
        {
            OperateStatus statu = new OperateStatus();

            jobQuartz.Addtime  = DateTime.Now;
            jobQuartz.UserName = "******";
            if (jobQuartz.Id == 0)
            {
                QuartzEnum type = (QuartzEnum)Enum.Parse(typeof(QuartzEnum), jobQuartz.TriggerType);
                StdSchedulerManager.AddScheduleJob(jobQuartz, type);
                DataBaseLogic.Insert(jobQuartz);
                statu.Message    = "添加成功";
                statu.ResultSign = ResultSign.Successful;
            }
            else
            {
                StdSchedulerManager.UpdateJobTime(jobQuartz);
                DataBaseLogic.Update(jobQuartz);
                statu.Message    = "编辑成功";
                statu.ResultSign = ResultSign.Successful;
            }
            return(Json(statu));
        }
Ejemplo n.º 22
0
        /// <summary>
        ///     日历
        /// </summary>
        /// <param name="htmlHelper"></param>
        /// <param name="input"></param>
        /// <returns></returns>
        public static MvcHtmlString LoadQuartzCalendar(this HtmlHelper htmlHelper, BaseDropDownListInput input)
        {
            StringBuilder stringBuilder = new StringBuilder(2000);

            stringBuilder.Append("<select id='" + input.Id + "' name='" + input.Name + "'" + input.HtmlAttributes + ">");
            if (input.NeedDefault)
            {
                stringBuilder.Append("<option value=''>===请选择===</option>");
            }
            var calendars = StdSchedulerManager.GetCalendarNames().ToList().Select(n => new
            {
                Name     = n,
                Calendar = StdSchedulerManager.GetCalendar(n)
            }).ToDictionary(n => n.Name, n => n.Calendar);

            foreach (var item in calendars)
            {
                if (input.SelectedVal != null)
                {
                    if (item.Key == input.SelectedVal)
                    {
                        stringBuilder.Append(" <option value='" + item.Key + "' selected='selected'>" + item.Key + "</option> ");
                    }
                    else
                    {
                        stringBuilder.Append(" <option value='" + item.Key + "' >" + item.Key + "</option> ");
                    }
                }
                else
                {
                    stringBuilder.Append(" <option value='" + item.Key + "' >" + item.Key + "</option> ");
                }
            }
            stringBuilder.Append("</select>");
            return(new MvcHtmlString(stringBuilder.ToString()));
        }
Ejemplo n.º 23
0
 /// <summary>
 /// 启动作业
 /// </summary>
 private void Job()
 {
     StdSchedulerManager.Init();
     StdSchedulerManager.Start();
 }