/// <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))); }
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)); }
public JsonResult CalcRunTime(string cronExpression) { try { return(Json(StdSchedulerManager.GetTaskeFireTime(cronExpression, 5))); } catch { return(null); } }
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)); }
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)); }
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); }
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)); }
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))); }
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)); }
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)); }
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)); }
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)); }
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)); }
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)); }
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)); }
/// <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)); }
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)); }
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)); }
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)); }
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)); }
/// <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)); }
/// <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())); }
/// <summary> /// 启动作业 /// </summary> private void Job() { StdSchedulerManager.Init(); StdSchedulerManager.Start(); }