/// <summary> /// 用户单击“保存”按钮时的事件处理方法。 /// </summary> private void BtnSave_Click(object sender, EventArgs e) { var formSysMessage = FormSysMessage.ShowLoading(); BindFormlToObject(); // 进行数据绑定 try { if (jobDetail.JobId > 0) { int effected = CustomJobDetailBLL.CreateInstance().Update(jobDetail); // 调用“业务逻辑层”的方法,检查有效性后更新至数据库。 if (effected == 0) { return; } // 根据新的配置,更新寄宿服务里的任务计划 CustomJobDetailBLL.CreateInstance().ModifyHostJob(jobHostSite, jobDetail.JobId, jobDetail.JobName); #region 开启或关闭任务计划 if (jobDetail.State == (byte)JobState.Running) { CustomJobDetailBLL.CreateInstance().StartHostJob(jobHostSite, jobDetail.JobId, jobDetail.JobName, () => { this.Invoke(new CallBackDelegate(CallBackFunc), formSysMessage, "启动任务计划成功。"); }, () => { this.Invoke(new CallBackDelegate(CallBackFunc), formSysMessage, "启动任务计划失败。"); }); } else if (jobDetail.State == (byte)JobState.Stopping || jobDetail.State == (byte)JobState.Waiting) { CustomJobDetailBLL.CreateInstance().StopHostJob(jobHostSite, jobDetail.JobId, jobDetail.JobName, () => { this.Invoke(new CallBackDelegate(CallBackFunc), formSysMessage, "关闭任务计划成功。"); }, () => { this.Invoke(new CallBackDelegate(CallBackFunc), formSysMessage, "关闭任务计划失败。"); }); } #endregion } else { #region 添加任务计划 int newId = CustomJobDetailBLL.CreateInstance().Insert(jobDetail); // 调用“业务逻辑层”的方法,检查有效性后插入至数据库。 if (newId == 0) { return; } CustomJobDetailBLL.CreateInstance().AddHostJob(jobHostSite, jobDetail.JobId, jobDetail.JobName, () => { this.Invoke(new CallBackDelegate(CallBackFunc), formSysMessage, "添加任务计划成功。"); }, () => { this.Invoke(new CallBackDelegate(CallBackFunc), formSysMessage, "添加任务计划失败。"); }); #endregion } } catch (Exception ex) { this.Invoke(new CallBackDelegate(CallBackFunc), formSysMessage, "保存失败。"); Log4NetHelper.WriteExcepetion(ex); } }
public JsonResult StopJob() { try { IScheduler scheduler = QuartzNetHelper.GetScheduler(); if (!scheduler.IsStarted) { scheduler.Start(); } int jobId = Convert.ToInt32(Request["jobId"]); string jobName = Request["jobName"]; CustomJobDetail customJob = CustomJobDetailBLL.CreateInstance().Get(jobId, jobName); var jobKey = JobKey.Create(customJob.JobName, customJob.JobGroup); if (scheduler.CheckExists(jobKey)) { scheduler.PauseJob(jobKey); } else { IJobDetail job = JobBuilder.Create <CustomHttpJob>() .WithIdentity(customJob.JobName, customJob.JobGroup) .Build(); ICronTrigger trigger = (ICronTrigger)TriggerBuilder.Create() .StartAt(customJob.StartDate) .EndAt(customJob.EndDate) .WithIdentity(customJob.JobName, customJob.JobGroup) .WithCronSchedule(customJob.CronExpression) .WithDescription(customJob.Description) .Build(); scheduler.ScheduleJob(job, trigger); scheduler.Start(); scheduler.PauseJob(jobKey); } customJob.State = (byte)JobState.Stopping; CustomJobDetailBLL.CreateInstance().Update(customJob); return(Json(new { Code = 1, Message = "执行成功!" })); } catch (Exception ex) { Log4NetHelper.WriteExcepetion(ex); return(Json(new { Code = 0, Message = "执行失败!" })); } }
public void Execute(IJobExecutionContext context) { string jobName = context.JobDetail.Key.Name; Task.Factory.StartNew(() => { try { CustomJobDetail customJob = CustomJobDetailBLL.CreateInstance().Get(jobName); HttpHelper.SendPost(customJob.JobServiceURL + "?jobName=" + customJob.JobName, ""); } catch (Exception ex) { Log4NetHelper.WriteExcepetion(ex); } }); }
public JsonResult DeleteJob() { try { IScheduler scheduler = QuartzNetHelper.GetScheduler(); if (!scheduler.IsStarted) { scheduler.Start(); } int jobId = Convert.ToInt32(Request["jobId"]); string jobName = Request["jobName"]; CustomJobDetail customJob = CustomJobDetailBLL.CreateInstance().Get(jobId, jobName); scheduler.PauseTrigger(new TriggerKey(customJob.JobName, customJob.JobGroup)); scheduler.UnscheduleJob(new TriggerKey(customJob.JobName, customJob.JobGroup)); var jobKey = JobKey.Create(customJob.JobName, customJob.JobGroup); if (scheduler.CheckExists(jobKey)) { var result = scheduler.DeleteJob(jobKey); if (result) { CustomJobDetailBLL.CreateInstance().Delete(customJob.JobId, customJob.JobName); } if (result) { return(Json(new { Code = 1, Message = "执行成功!" })); } else { return(Json(new { Code = 0, Message = "执行失败!" })); } } return(Json(new { Code = 1, Message = "执行成功!" })); } catch (Exception ex) { Log4NetHelper.WriteExcepetion(ex); return(Json(new { Code = 0, Message = "执行失败!" })); } }
private void DgvGrid_CellMouseClick(object sender, DataGridViewCellMouseEventArgs e) { if (e.RowIndex < 0) { return; } int jobId = Convert.ToInt32(DgvGrid["ColAction", e.RowIndex].Value.ToString()); // 获取所要修改关联对象的主键。 string jobIdentity = DgvGrid["ScheduleJobName", e.RowIndex].Value.ToString(); CustomJobDetail jobDetail = CustomJobDetailBLL.CreateInstance().Get(jobId, jobIdentity); #region 修改 //用户单击DataGridView“操作”列中的“修改”按钮。 if (JobDataGridViewActionButtonCell.IsModifyButtonClick(sender, e)) { FormMain.LoadNewControl(ScheduleJobEdit.BindJobDetail(jobDetail)); // 载入该模块的修改信息界面至主窗体显示。 } #endregion #region 除 //用户单击DataGridView“操作”列中的“删除”按钮。 if (JobDataGridViewActionButtonCell.IsDeleteButtonClick(sender, e)) { DialogResult dialogResult = FormSysMessage.ShowMessage("确定要删除该任务计划吗?"); if (dialogResult == DialogResult.OK) { var formSysMessage = FormSysMessage.ShowLoading(); int effected = CustomJobDetailBLL.CreateInstance().Delete(jobId, jobIdentity); if (effected > 0) { CustomJobDetailBLL.CreateInstance().DeleteHostJob( jobHostSite, jobId, jobIdentity, () => { this.Invoke(new RefreshDataGrid(SetLoadingDialog), formSysMessage, "删除任务计划成功。"); }, () => { this.Invoke(new RefreshDataGrid(SetLoadingDialog), formSysMessage, "删除任务计划失败。"); }); } BindDataGrid(); } } #endregion #region 启动任务计划 //用户单击DataGridView“操作”列中的“启动”按钮。 if (JobDataGridViewActionButtonCell.IsStartButtonClick(sender, e)) { var formSysMessage = FormSysMessage.ShowLoading(); CustomJobDetailBLL.CreateInstance().StartHostJob(jobHostSite, jobId, jobIdentity, () => { this.Invoke(new RefreshDataGrid(SetLoadingDialog), formSysMessage, "启动任务计划成功。"); }, () => { this.Invoke(new RefreshDataGrid(SetLoadingDialog), formSysMessage, "启动任务计划失败。"); }); } #endregion #region 停止任务计划 //用户单击DataGridView“操作”列中的“停止”按钮。 if (JobDataGridViewActionButtonCell.IsStopButtonClick(sender, e)) { var formSysMessage = FormSysMessage.ShowLoading(); CustomJobDetailBLL.CreateInstance().StopHostJob(jobHostSite, jobId, jobIdentity, () => { this.Invoke(new RefreshDataGrid(SetLoadingDialog), formSysMessage, "停止任务计划成功。"); }, () => { this.Invoke(new RefreshDataGrid(SetLoadingDialog), formSysMessage, "停止任务计划失败。"); }); } #endregion }
/// <summary> /// 对DataGridView控件的数据源进行绑定。 /// </summary> public static void BindDataGrid() { instance.PageBar.DataControl = instance.DgvGrid; instance.PageBar.DataSource = CustomJobDetailBLL.CreateInstance().GetPageList(instance.PageBar.PageSize, instance.PageBar.CurPage); instance.PageBar.DataBind(); }