public TaskEntity(Int64 paraID, string paraName, bool paraEnable, DateTime paraDateStart, DateTime paraDateEnd, Int64 paraRunSpaceTime, TaskFrequence paraRunSpaceType, string paraExtraParaStr, //string paraExeCommandParaMeter, Int64 paraRunTimeOutSecs, string paraRegestesAppName ) { _ID = paraID; _Name = paraName; _Enable = paraEnable; _DateStart = paraDateStart; _DateEnd = paraDateEnd; _RunSpaceTime = paraRunSpaceTime; _RunSpaceType = paraRunSpaceType; _ExtraParaStr = paraExtraParaStr; //_ExeCommandParaMeter = paraExeCommandParaMeter; _RunTimeOutSecs = paraRunTimeOutSecs; _RegestesAppName = paraRegestesAppName; }
/// <summary> /// 添加定时任务 /// </summary> /// <param name="paraName"></param> /// <param name="paraDateStart"></param> /// <param name="paraDateEnd"></param> /// <param name="paraAppName"></param> /// <param name="paraRunSpaceTimeSecs">周期数(秒)</param> /// <param name="paraRunSpaceType">周期类型(便于存储和下次查看)</param> /// <param name="paraExtraStr"></param> /// <param name="paraRunTimeOutSecs">执行超时时间,如果不限定,则给-1,如果限定了,在指定时间内未执行完成,则强制结束(exe直接结束进程,dll通过接口通知结束)</param> /// <returns></returns> public TaskEntity AddTask(string paraName, DateTime paraDateStart, DateTime paraDateEnd, string paraAppName, Int64 paraRunSpaceTimeSecs, TaskFrequence paraRunSpaceType, string paraExtraStr, Int64 paraRunTimeOutSecs) { try { TaskAssembly assembly = BLLFactory.GetBllRegistApp().GetRegestedApp(paraAppName); if (assembly == null) { throw new Exception(string.Format("添加的计划的程序(RegestesAppName){0}尚未在配置文件(RegistedApps.xml)中注册", paraAppName)); } else { TaskEntity entity = new TaskEntity(); entity.DateEnd = paraDateEnd; entity.DateStart = paraDateStart; entity.Enable = true; entity.ExtraParaStr = paraExtraStr; entity.Name = paraName; entity.RunSpaceTime = paraRunSpaceTimeSecs; entity.RunSpaceType = paraRunSpaceType; entity.RunTimeOutSecs = paraRunTimeOutSecs; entity.RegestesAppName = paraAppName; //先校验,后保存 //输入校验 MessageParser.CheckAndSetTaskFrequence(ref entity); //保存到数据库 Int64 id = _DataAccess.AddTask(entity); if (id >= 0) {//保存成功 entity.SetKeyID(id); try { //发送消息同步到任务管理器中 string message = MessageParser.BuildMessage(new List<TaskEntity>() { entity }, null, null, null, null, null); this.SendXMLSocket2Server(message); return entity; } catch { this.DelTaskComplet(id); throw; } } else {//未保存成功 this.WriteLog(-1, entity.Name, "计划保存到数据库没有成功", LogType.TaskAdd2DBError); throw new Exception("计划保存到数据库没有成功"); } } } catch { throw; } }
/// <summary> /// 添加定时任务 /// </summary> /// <param name="paraName"></param> /// <param name="paraDateStart"></param> /// <param name="paraDateEnd"></param> /// <param name="paraAppName"></param> /// <param name="paraRunSpaceTimeSecs"></param> /// <param name="paraRunSpaceType"></param> /// <param name="paraExtraStr"></param> /// <param name="paraRunTimeOutSecs"></param> /// <returns></returns> public TaskEntity AddTask(string paraName, DateTime paraDateStart, DateTime paraDateEnd, string paraAppName, Int64 paraRunSpaceTimeSecs, TaskFrequence paraRunSpaceType, string paraExtraStr, Int64 paraRunTimeOutSecs) { return _BLL.AddTask(paraName, paraDateStart, paraDateEnd, paraAppName, paraRunSpaceTimeSecs, paraRunSpaceType, paraExtraStr, paraRunTimeOutSecs); }
/// <summary> /// 更新任务 /// </summary> /// <param name="paraTaskID"></param> /// <param name="paraName"></param> /// <param name="paraDateStart"></param> /// <param name="paraDateEnd"></param> /// <param name="paraAppName"></param> /// <param name="paraRunSpaceTimeSecs"></param> /// <param name="paraRunSpaceType"></param> /// <param name="paraExtraStr"></param> /// <param name="paraRunTimeOutSecs"></param> public void UpdateTask(Int64 paraTaskID, string paraName, DateTime paraDateStart, DateTime paraDateEnd, string paraAppName, Int64 paraRunSpaceTimeSecs, TaskFrequence paraRunSpaceType, string paraExtraStr, Int64 paraRunTimeOutSecs) { _BLL.UpdateTask(paraTaskID, paraName, paraDateStart, paraDateEnd, paraAppName, paraRunSpaceTimeSecs, paraRunSpaceType, paraExtraStr, paraRunTimeOutSecs); }
/// <summary> /// 更新任务 /// </summary> /// <param name="paraTaskID"></param> /// <param name="paraName"></param> /// <param name="paraDateStart"></param> /// <param name="paraDateEnd"></param> /// <param name="paraAppName"></param> /// <param name="paraRunSpaceTimeSecs"></param> /// <param name="paraRunSpaceType"></param> /// <param name="paraExtraStr"></param> /// <param name="paraRunTimeOutSecs"></param> /// <returns></returns> public void UpdateTask(Int64 paraTaskID, string paraName, DateTime paraDateStart, DateTime paraDateEnd, string paraAppName, Int64 paraRunSpaceTimeSecs, TaskFrequence paraRunSpaceType, string paraExtraStr, Int64 paraRunTimeOutSecs) { try { TaskAssembly assembly = BLLFactory.GetBllRegistApp().GetRegestedApp(paraAppName); if (assembly == null) { throw new Exception(string.Format("更新的计划的程序(RegestesAppName){0}尚未在配置文件(RegistedApps.xml)中注册", paraAppName)); } else { TaskEntity entity = new TaskEntity(paraTaskID, paraName, true, paraDateStart, paraDateEnd, paraRunSpaceTimeSecs, paraRunSpaceType, paraExtraStr, paraRunTimeOutSecs, paraAppName); //发送消息同步到任务管理器中 string message = MessageParser.BuildMessage(null, null, new List<TaskEntity>() { entity }, null, null, null); //一定要保证先发送,后保存 this.SendXMLSocket2Server(message); _DataAccess.ModifyTask(paraTaskID, entity); } } catch { throw; } }