public JsonResult ModifyJob() { try { int jobId = Convert.ToInt32(Request["jobId"]); string jobName = Request["jobName"]; CustomJobDetail customJob = CustomJobDetailBLL.CreateInstance().Get(jobId, jobName); IScheduler scheduler = QuartzNetHelper.GetScheduler(); var jobKey = JobKey.Create(customJob.JobName, customJob.JobGroup); if (scheduler.CheckExists(jobKey)) { scheduler.DeleteJob(jobKey); } 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); return(Json(new { Code = 1, Message = "执行成功!" })); } catch (Exception ex) { Log4NetHelper.WriteExcepetion(ex); return(Json(new { Code = 0, Message = "执行失败!" })); } }
public int Insert(CustomJobDetail jobDetail) { CheckValid(jobDetail); var newId = _dal.Insert(jobDetail); jobDetail.JobId = newId; return(newId); }
public JsonResult SyncMsSqlData() { try { Log4NetHelper.WriteInfo("=============同步服务开始=============="); List <SqlServerConfigInfo> listSqlServerConfig = SqlServerConfigInfoBLL.CreateInstance().GetAll(); string jobName = Request["jobName"]; CustomJobDetail jobDetail = CustomJobDetailBLL.CreateInstance().Get(jobName); DateTime startDate = CustomJobDetailBLL.CreateInstance().GetFetchingStartDate(jobDetail.IntervalType, jobDetail.Interval); Parallel.ForEach(listSqlServerConfig, new ParallelOptions { MaxDegreeOfParallelism = 5 }, (sqlServerConfig) => { Monitor.Enter(lockedObj); try { List <EventLogDetail> listEventLogDetail = EventLogDetailBLL.CreateInstance().GetAll(sqlServerConfig.ConnString, startDate); if (listEventLogDetail != null && listEventLogDetail.Count > 0) { int cvsFileCapacity = 1000; if (sqlServerConfig.StoredType == (byte)StoredTypeEnum.PageSize) { cvsFileCapacity = sqlServerConfig.PageSize; } else if (sqlServerConfig.StoredType == (byte)StoredTypeEnum.MaxCapacity) { cvsFileCapacity = sqlServerConfig.MaxCapacity; } ExportCVSFile(listEventLogDetail, sqlServerConfig.EquipmentNum, cvsFileCapacity); } } catch (Exception ex) { Log4NetHelper.WriteExcepetion(ex); } finally { Monitor.Exit(lockedObj); } System.Threading.Thread.Sleep(1000); }); Log4NetHelper.WriteInfo("MsSqlDataSync-SyncMsSqlData 执行成功!"); Log4NetHelper.WriteInfo("=============同步服务结束=============="); return(Json(new { Code = 1, Message = "执行成功!" })); } catch (Exception ex) { Log4NetHelper.WriteExcepetion(ex); return(Json(new { Code = 0, Message = "执行失败!" })); } }
public PageData GetPageList(int pageSize, int curPage, string jobName = "") { string sqlWhere = ""; List <MySqlParameter> listParms = new List <MySqlParameter>(); if (!string.IsNullOrEmpty(jobName)) { sqlWhere = "WHERE JobName LIKE @JobName"; listParms.Add(new MySqlParameter("@JobName", MySqlDbType.VarChar, 100) { Value = "%" + jobName + "%" }); } int recordsTotal = MySqlDbHelper.ExecuteScalar <int>("SELECT COUNT(*) FROM custom_job_details " + sqlWhere, listParms.ToArray()); string sqlText = @" SELECT JobId, JobName, JobGroup, JobChineseName, JobServiceURL, CreatedDate, UpdatedDate, StartDate, EndDate, PageSize, `Interval`, IntervalType, State, Description, ExecutedFreq FROM custom_job_details " + sqlWhere + " ORDER BY JobId DESC LIMIT " + (curPage - 1) * pageSize + "," + pageSize; List <CustomJobDetail> list = new List <CustomJobDetail>(); MySqlDataReader sqlDataReader = MySqlDbHelper.ExecuteReader(sqlText, listParms.ToArray()); PageData pageData = new PageData(); pageData.PageSize = pageSize; pageData.CurPage = curPage; pageData.RecordCount = Math.Max(1, recordsTotal); if (pageData.RecordCount > 0) { pageData.PageCount = Convert.ToInt32(Math.Ceiling((double)pageData.RecordCount / (double)pageSize)); } while (sqlDataReader.Read()) { CustomJobDetail jobDetail = new CustomJobDetail(); ReadRecordData(sqlDataReader, jobDetail); list.Add(jobDetail); } sqlDataReader.Close(); pageData.PageList = list; return(pageData); }
public static ScheduleJobEdit BindJobDetail(CustomJobDetail job) { if (instance == null) { instance = new ScheduleJobEdit(); } instance.jobDetail = job; // 创建新的关联对象,可以在“数据实体层”中指定对象的默认值。 instance.BindObjectToForm(); // 每次返回该控件的实例前,都将关联对象的默认值,绑定至界面控件进行显示。 return(instance); }
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 CustomJobDetail Get(int jobId, string jobName) { CustomJobDetail jobDetail = null; string sqlText = @" SELECT `JobId`, `JobName`, `JobGroup`, `JobChineseName`, `JobServiceURL`, `CreatedDate`, `UpdatedDate`, `StartDate`, `EndDate`, `ExecutedFreq`, `PageSize`, `Interval`, `State`, `Description`, `IntervalType` FROM `custom_job_details` WHERE `JobId` = @JobId AND `JobName` = @JobName;"; MySqlParameter[] parameters = { new MySqlParameter("@JobId", MySqlDbType.Int32) { Value = jobId }, new MySqlParameter("@JobName", MySqlDbType.VarChar, 100) { Value = jobName } }; MySqlDataReader sqlDataReader = MySqlDbHelper.ExecuteReader(sqlText, parameters); if (sqlDataReader.Read()) { jobDetail = new CustomJobDetail(); ReadRecordData(sqlDataReader, jobDetail); } sqlDataReader.Close(); return(jobDetail); }
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 = "执行失败!" })); } }
public void CheckValid(CustomJobDetail jobDetail) { if (string.IsNullOrEmpty(jobDetail.JobChineseName)) { throw new CustomException("请输入任务名称。", ExceptionType.Warn); } if (string.IsNullOrEmpty(jobDetail.JobName)) { throw new CustomException("请输入任务代号。", ExceptionType.Warn); } if (string.IsNullOrEmpty(jobDetail.JobServiceURL)) { throw new CustomException("请输入需要执行的服务地址。", ExceptionType.Warn); } if (Exists(jobDetail.JobId, jobDetail.JobName)) { throw new CustomException("任务代号已存在,请重新输入。", ExceptionType.Warn); } }
void ReadRecordData(IDataReader dataReader, CustomJobDetail jobDetail) { if (dataReader["JobId"] != DBNull.Value) { jobDetail.JobId = Convert.ToInt32(dataReader["JobId"]); } if (dataReader["JobName"] != DBNull.Value) { jobDetail.JobName = Convert.ToString(dataReader["JobName"]); } if (dataReader["JobGroup"] != DBNull.Value) { jobDetail.JobGroup = Convert.ToString(dataReader["JobGroup"]); } if (dataReader["JobChineseName"] != DBNull.Value) { jobDetail.JobChineseName = Convert.ToString(dataReader["JobChineseName"]); } if (dataReader["JobServiceURL"] != DBNull.Value) { jobDetail.JobServiceURL = Convert.ToString(dataReader["JobServiceURL"]); } if (dataReader["CreatedDate"] != DBNull.Value) { jobDetail.CreatedDate = Convert.ToDateTime(dataReader["CreatedDate"]); } if (dataReader["UpdatedDate"] != DBNull.Value) { jobDetail.UpdatedDate = Convert.ToDateTime(dataReader["UpdatedDate"]); } if (dataReader["StartDate"] != DBNull.Value) { jobDetail.StartDate = Convert.ToDateTime(dataReader["StartDate"]); } if (dataReader["EndDate"] != DBNull.Value) { jobDetail.EndDate = Convert.ToDateTime(dataReader["EndDate"]); } if (dataReader["PageSize"] != DBNull.Value) { jobDetail.PageSize = Convert.ToInt32(dataReader["PageSize"]); } if (dataReader["Interval"] != DBNull.Value) { jobDetail.Interval = Convert.ToInt32(dataReader["Interval"]); } if (dataReader["IntervalType"] != DBNull.Value) { jobDetail.IntervalType = Convert.ToByte(dataReader["IntervalType"]); } if (dataReader["State"] != DBNull.Value) { jobDetail.State = Convert.ToByte(dataReader["State"]); } if (dataReader["Description"] != DBNull.Value) { jobDetail.Description = Convert.ToString(dataReader["Description"]); } if (dataReader["ExecutedFreq"] != DBNull.Value) { jobDetail.ExecutedFreq = Convert.ToByte(dataReader["ExecutedFreq"]); } }
public int Insert(CustomJobDetail jobDetail) { jobDetail.UpdatedDate = DateTime.Now; jobDetail.CreatedDate = DateTime.Now; string sqlText = @"INSERT INTO custom_job_details (`JobId`, `JobName`, `JobGroup`, `JobChineseName`, `JobServiceURL`, `CreatedDate`, `UpdatedDate`, `StartDate`, `EndDate`, `ExecutedFreq`, `PageSize`, `Interval`, `State`, `Description`, `IntervalType`) VALUES (@JobId, @JobName, @JobGroup, @JobChineseName, @JobServiceURL, @CreatedDate, @UpdatedDate, @StartDate, @EndDate, @ExecutedFreq, @PageSize, @Interval, @State, @Description, @IntervalType); SELECT LAST_INSERT_ID();"; MySqlParameter[] parameters = { new MySqlParameter("@JobId", MySqlDbType.Int32) { Value = jobDetail.JobId }, new MySqlParameter("@JobName", MySqlDbType.VarChar, 100) { Value = jobDetail.JobName }, new MySqlParameter("@JobGroup", MySqlDbType.VarChar, 50) { Value = jobDetail.JobGroup }, new MySqlParameter("@JobChineseName", MySqlDbType.VarChar, 100) { Value = jobDetail.JobChineseName }, new MySqlParameter("@JobServiceURL", MySqlDbType.VarChar, 200) { Value = jobDetail.JobServiceURL }, new MySqlParameter("@CreatedDate", MySqlDbType.DateTime) { Value = jobDetail.CreatedDate }, new MySqlParameter("@UpdatedDate", MySqlDbType.DateTime) { Value = jobDetail.UpdatedDate }, new MySqlParameter("@StartDate", MySqlDbType.DateTime) { Value = jobDetail.StartDate }, new MySqlParameter("@EndDate", MySqlDbType.DateTime) { Value = jobDetail.EndDate }, new MySqlParameter("@PageSize", MySqlDbType.Int32) { Value = jobDetail.PageSize }, new MySqlParameter("@Interval", MySqlDbType.Int32) { Value = jobDetail.Interval }, new MySqlParameter("@IntervalType", MySqlDbType.Byte) { Value = jobDetail.IntervalType }, new MySqlParameter("@State", MySqlDbType.Byte) { Value = jobDetail.State }, new MySqlParameter("@Description", MySqlDbType.VarChar, 255) { Value = jobDetail.Description }, new MySqlParameter("@ExecutedFreq", MySqlDbType.Byte) { Value = jobDetail.ExecutedFreq } }; return(MySqlDbHelper.ExecuteScalar <int>(sqlText, parameters)); }
public int Update(CustomJobDetail jobDetail) { jobDetail.UpdatedDate = DateTime.Now; string sqlText = @"UPDATE custom_job_details SET `JobName` = @JobName, `JobGroup` = @JobGroup, `JobChineseName` = @JobChineseName, `JobServiceURL` = @JobServiceURL, `CreatedDate` = @CreatedDate, `UpdatedDate` = @UpdatedDate, `StartDate` = @StartDate, `EndDate` = @EndDate, `PageSize` = @PageSize, `Interval` = @Interval, `IntervalType`=@IntervalType, `State` = @State, `Description` = @Description, `ExecutedFreq`=@ExecutedFreq WHERE `JobId` = @JobId;"; MySqlParameter[] parameters = { new MySqlParameter("@JobId", MySqlDbType.Int32) { Value = jobDetail.JobId }, new MySqlParameter("@JobName", MySqlDbType.VarChar, 100) { Value = jobDetail.JobName }, new MySqlParameter("@JobGroup", MySqlDbType.VarChar, 50) { Value = jobDetail.JobGroup }, new MySqlParameter("@JobChineseName", MySqlDbType.VarChar, 100) { Value = jobDetail.JobChineseName }, new MySqlParameter("@JobServiceURL", MySqlDbType.VarChar, 200) { Value = jobDetail.JobServiceURL }, new MySqlParameter("@CreatedDate", MySqlDbType.DateTime) { Value = jobDetail.CreatedDate }, new MySqlParameter("@UpdatedDate", MySqlDbType.DateTime) { Value = jobDetail.UpdatedDate }, new MySqlParameter("@StartDate", MySqlDbType.DateTime) { Value = jobDetail.StartDate }, new MySqlParameter("@EndDate", MySqlDbType.DateTime) { Value = jobDetail.EndDate }, new MySqlParameter("@PageSize", MySqlDbType.Int32) { Value = jobDetail.PageSize }, new MySqlParameter("@Interval", MySqlDbType.Int32) { Value = jobDetail.Interval }, new MySqlParameter("@IntervalType", MySqlDbType.Byte) { Value = jobDetail.IntervalType }, new MySqlParameter("@State", MySqlDbType.Byte) { Value = jobDetail.State }, new MySqlParameter("@Description", MySqlDbType.VarChar, 255) { Value = jobDetail.Description }, new MySqlParameter("@ExecutedFreq", MySqlDbType.Byte) { Value = jobDetail.ExecutedFreq } }; return(MySqlDbHelper.ExecuteNonQuery(sqlText, parameters)); }
public int Update(CustomJobDetail jobDetail) { CheckValid(jobDetail); return(_dal.Update(jobDetail)); }
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 }