/// <summary> /// 批量上传版本变指定为当前版本 /// </summary> /// <param name="model"></param> /// <param name="tag"></param> public void BatchTaskVersion(TaskVersion model, int tag) { using (RLib.DB.DbConn dbconn = Pub.GetConn()) { var tasks = taskdal.GetAllTask(dbconn, tag); if (tasks.Count == 0) { throw new MException("没有任务!"); } dbconn.BeginTransaction(); try { foreach (var a in tasks) { model.TaskId = a.TaskId; var versions = taskdal.AddVersion(dbconn, model); taskdal.SetVersion(dbconn, a.TaskId, versions.VersionId); } dbconn.Commit(); } catch (Exception ex) { dbconn.Rollback(); throw; } } }
public Model.Cmd Detail(RLib.DB.DbConn dbconn, int cmdid) { string sql = "select * from cmd where cmdid=@cmdid;"; var model = dbconn.Query <Model.Cmd>(sql, new { cmdid = cmdid }).FirstOrDefault(); return(model); }
public Model.Cmd AddCmd(RLib.DB.DbConn dbconn, Model.Cmd model) { string sql = @"INSERT INTO [dbo].[cmd] ([nodeId] ,[cmdType] ,[cmdArgs] ,[createTime] ,[cmdState] -- ,[callTime] -- ,[endTime] -- ,[resultText] ) VALUES (@nodeid ,@cmdtype ,@cmdargs ,getdate() ,@cmdstate -- ,@callTime -- ,@endTime -- ,@resultText )"; dbconn.ExecuteSql(sql, new { nodeid = model.NodeId, cmdtype = model.CmdType ?? "", cmdargs = model.CmdArgs ?? "", cmdstate = 0 }); model.CmdId = dbconn.GetIdentity(); return(model); }
public void SaveAll(Dictionary <int, string> dic) { using (RLib.DB.DbConn dbconn = Pub.GetConn()) { dal.SaveAll(dbconn, dic); } }
public int CallCmd(RLib.DB.DbConn dbconn, int cmdid) { string sql = "update cmd set cmdState=1 ,callTime=getdate() where cmdid=@cmdid and cmdState=0 "; int r = dbconn.ExecuteSql(sql, new { cmdid = cmdid }); return(r); }
public int GroupWaitDispatchCount(RLib.DB.DbConn dbconn, string groupid) { string sql = "select count(1) from dispatch where groupid=@groupid and dispatchState=0 and expireTime>getdate() ;"; int r = dbconn.ExecuteScalar <int>(sql, new { groupid = groupid }); return(r); }
public int Delete(RLib.DB.DbConn dbconn, int dispatchid) { string sql = "update dispatch set dispatchState=-1 where dispatchId=@dispatchid ;"; int r = dbconn.ExecuteSql(sql, new { dispatchid = dispatchid }); return(r); }
public static bool ExistTableInDB(RLib.DB.DbConn dbconn, string tbname) { string sqlexist = "SELECT COUNT(1) FROM dbo.SysObjects where [type]='U' and name=@tablename"; int r = dbconn.ExecuteScalar <int>(sqlexist, new { tablename = tbname }); return(r > 0); }
public List <MApiEntity.Task> TaskList() { using (RLib.DB.DbConn dbconn = Pub.GetConn()) { return(taskdal.GetAllTask(dbconn, -1) .Select(x => new MApiEntity.Task() { DispatchClass = x.DispatchClass, EnterClass = x.EnterClass, EnterDll = x.EnterDll, RunCron = x.RunCron, TaskBindings = taskdal.GetTaskBindings(dbconn, x.TaskId) .Select(y => new MApiEntity.TaskBinding() { BindId = y.BindId, TaskId = y.TaskId, LastRunTime = y.LastRunTime, LocalState = y.LocalState, NodeId = y.NodeId, ServerState = y.ServerState }).ToList(), Remark = x.Remark, State = x.State, Title = x.Title, TaskId = x.TaskId, TaskConfig = x.TaskConfig, TaskType = x.TaskType }).ToList()); } }
public string GetConfig(RLib.DB.DbConn dbconn) { string sql = "select [Value] from RuanalCfg where [Key]=@key;"; var val = dbconn.ExecuteScalar <string>(sql, new { key = KEY }); return(val ?? ""); }
public static RLib.DB.DbConn GetBusinessConn() { RLib.DB.DbConn conn = RLib.DB.DbConn.CreateConn(RLib.DB.DbType.SQLSERVER, GetConnnectionString(CONN_Business_CONFIG_NAME)); conn.Open(); return(conn); }
public int AutoEndEnd() { TimeSpan runtime = TimeSpan.FromHours(1.5); using (RLib.DB.DbConn dbconn = Pub.GetConn()) { var disdpatchdal = new DAL.DispatchDal(); var dis = disdpatchdal.GetRunDispatchs(dbconn, DateTime.Now.Subtract(runtime)); int s = 0; foreach (var a in dis) { var disitem = disdpatchdal.GetLastDispatchKeyItem(dbconn, a.TaskId, a.RunKey); if (disitem == null) { continue; } if (disitem.DispatchState >= 2 && disitem.DispatchState <= 4) { disdpatchdal.EndExec(dbconn, a.DispatchId, true, "检测自动结束!"); try { CmdHelper.Instance.StopDispatch(disitem.DispatchId); } catch { } s++; } } return(s); } }
public bool SetDispatchState(int taskId, int nodeId, int dispatchState) { using (RLib.DB.DbConn dbconn = Pub.GetConn()) { List <int> nodeids = new List <int>(); if (nodeId == 0) { nodeids.AddRange(taskdal.GetTaskBindings(dbconn, taskId).Select(x => x.NodeId)); } else { nodeids.Add(nodeId); } dbconn.BeginTransaction(); try { foreach (var a in nodeids) { taskdal.SetDispatchState(dbconn, taskId, a, dispatchState); } dbconn.Commit(); return(true); } catch (Exception ex) { dbconn.Rollback(); throw ex; } } }
public bool AddTaskBinding(int taskId, string nodeIds) { var nodes = RLib.Utils.StringHelper.SplitToIntList(nodeIds ?? "", new char[] { ',', ' ' }); if (nodes.Count == 0) { throw new MException("请选择节点!"); } using (RLib.DB.DbConn dbconn = Pub.GetConn()) { dbconn.BeginTransaction(); try { foreach (var n in nodes) { taskdal.AddBinding(dbconn, new TaskBinding() { NodeId = n, ServerState = 0, TaskId = taskId }); } dbconn.Commit(); return(true); } catch (Exception ex) { dbconn.Rollback(); throw ex; } } }
public int SetExec(RLib.DB.DbConn dbconn, int dispatchid) { string sql = "update dispatch set dispatchState=2,executeTime = getdate() where dispatchId=@dispatchid and dispatchState=1;"; int r = dbconn.ExecuteSql(sql, new { dispatchid = dispatchid }); return(r); }
public int TaskSetVersion(TaskVersion model) { using (RLib.DB.DbConn dbconn = Pub.GetConn()) { var task = taskdal.GetDetail(dbconn, model.TaskId); if (task == null) { throw new MException("没有任务!"); } dbconn.BeginTransaction(); try { model.TaskId = task.TaskId; var versions = taskdal.AddVersion(dbconn, new Model.TaskVersion() { CreateTime = DateTime.Now, FilePath = model.FilePath ?? "", FileSize = model.FileSize, Remark = model.Remark ?? "", TaskId = model.TaskId, VersionId = 0, VersionNO = DateTime.Now.ToString("yyyyMMddHHmmssfff" + "-" + model.TaskId), Vstate = 0 }); taskdal.SetVersion(dbconn, task.TaskId, versions.VersionId); dbconn.Commit(); return(model.TaskId); } catch (Exception ex) { dbconn.Rollback(); throw; } } }
public int ExistGroupId(RLib.DB.DbConn dbconn, string groupid) { string sql = "select count(1) from dispatch where groupid=@groupid and dispatchState<>-1 ;"; int r = dbconn.ExecuteScalar <int>(sql, new { groupid = groupid }); return(r); }
public JsonEntity AutoEndDispatchExecute(string ClientId, int dispatchId) { using (RLib.DB.DbConn dbconn = Pub.GetConn()) { dbconn.BeginTransaction(); try { var dispatchmodel = dispatchdal.GetDetail(dbconn, dispatchId); if (dispatchmodel == null || dispatchmodel.DispatchState == -1) { throw new MException("调度不存在!"); } if (dispatchmodel.DispatchState != 2) { throw new MException("调度不是执行中状态!"); } dispatchdal.EndExec(dbconn, dispatchmodel.DispatchId, false, "自动结束执行" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff")); //System.Diagnostics.Trace.WriteLine(string.Format("{0} 自动结束执行 {1}", dispatchmodel.DispatchId, DateTime.Now.ToString("HH:mm:ss.fff"))); dbconn.Commit(); return(new JsonEntity() { code = 1 }); } catch (Exception ex) { dbconn.Rollback(); throw ex; } } }
public int AutoExpire(RLib.DB.DbConn dbconn) { string sql = " update dispatch set dispatchState=10 where dispatchState=0 and expireTime<getdate() ;"; var models = dbconn.ExecuteSql(sql, new { }); return(models); }
public JsonEntity GetNewCmds(string ClientId) { using (RLib.DB.DbConn dbconn = Pub.GetConn()) { var nodemodel = nodedal.Detail(dbconn, ClientId); int totalcount = 0; var cmds = cmddal.GetNodeNewCmd(dbconn, nodemodel.NodeId, Ruanal.Core.ConfigConst.CMD_Page_Size, out totalcount); List <Ruanal.Core.ApiSdk.CmdDetail> cmddetails = new List <Core.ApiSdk.CmdDetail>(); foreach (var a in cmds) { cmddetails.Add(new Core.ApiSdk.CmdDetail() { CmdId = a.CmdId, NodeId = a.NodeId, CmdType = a.CmdType, CmdArgs = a.CmdArgs }); } return(new JsonEntity() { code = 1, data = cmddetails }); } }
public void SaveConfig(string config) { using (RLib.DB.DbConn dbconn = Pub.GetConn()) { commDal.SetConfig(dbconn, config); } }
public JsonEntity CmdEndExecute(string ClientId, int cmdid, bool success, string msg) { using (RLib.DB.DbConn dbconn = Pub.GetConn()) { var nodemodel = nodedal.Detail(dbconn, ClientId); dbconn.BeginTransaction(); try { var cmddetail = cmddal.Detail(dbconn, cmdid); if (cmddetail == null || cmddetail.CmdState == -1) { throw new MException("命令不存在!"); } if (cmddetail.CmdState != 1) { throw new MException("命令不是执行中状态!"); } if (cmddetail.NodeId != nodemodel.NodeId) { throw new MException("无权限操作该命令!"); } cmddal.EndCmd(dbconn, cmdid, success, msg); dbconn.Commit(); return(new JsonEntity() { code = 1 }); } catch (Exception ex) { dbconn.Rollback(); throw ex; } } }
public int HasNewCmd(RLib.DB.DbConn dbconn, int nodeId) { string sql = "select count(1) from cmd where nodeid=@nodeid and cmdstate=0 "; int count = dbconn.ExecuteScalar <int>(sql, new { nodeid = nodeId }); return(count); }
public JsonEntity SkipDispatchExecute(string ClientId, int dispatchId) { using (RLib.DB.DbConn dbconn = Pub.GetConn()) { var nodemodel = nodedal.Detail(dbconn, ClientId); dbconn.BeginTransaction(); try { var dispatchmodel = dispatchdal.GetDetail(dbconn, dispatchId); if (dispatchmodel == null || dispatchmodel.DispatchState == -1) { throw new MException("调度不存在!"); } if (dispatchmodel.DispatchState != 2) { throw new MException("调度不是执行中状态!"); } dispatchdal.SkipExec(dbconn, dispatchmodel.DispatchId); dbconn.Commit(); return(new JsonEntity() { code = 1 }); } catch (Exception ex) { dbconn.Rollback(); throw ex; } } }
public int EndCmd(RLib.DB.DbConn dbconn, int cmdid, bool success, string msg) { string sql = "update cmd set cmdState=@cmdstate ,endTime=getdate(),resultText = @resulttext where cmdid=@cmdid and cmdState=1 ;"; int r = dbconn.ExecuteSql(sql, new { cmdid = cmdid, cmdstate = success ? 2 : 3, resulttext = msg ?? "" }); return(r); }
public JsonEntity AddWorkLog(string ClientId, int taskId, string dispatchId, int logType, string logText, DateTime createTime) { if (Pub.PauseWorkLog) { return new JsonEntity() { code = 1 } } ; var sw = System.Diagnostics.Stopwatch.StartNew(); using (RLib.DB.DbConn dbconn = Pub.GetConn()) { var nodemodel = nodedal.Detail(dbconn, ClientId); Model.TaskWorkLog worklogmodel = new Model.TaskWorkLog() { NodeId = nodemodel.NodeId, TaskId = taskId, DispatchId = dispatchId ?? "", LogType = logType, LogText = logText, ServerTime = createTime }; tasklogdal.AddWorkLog(dbconn, createTime, worklogmodel); } sw.Stop(); System.Diagnostics.Trace.WriteLine("服务器写日志用时:" + sw.Elapsed.TotalMilliseconds.ToString("0.0")); return(new JsonEntity() { code = 1 }); }
public int DeleteCmd(RLib.DB.DbConn dbconn, int cmdid) { string sql = "update cmd set cmdState=-1 where cmdid=@cmdid"; int r = dbconn.ExecuteSql(sql, new { cmdid = cmdid }); return(r); }
public int SetDispatch(RLib.DB.DbConn dbconn, int dispatchid, int nodeId) { string sql = "update dispatch set dispatchState=1,dispatchTime = getdate(),nodeId=@nodeid where dispatchId=@dispatchid and dispatchState=0 "; int r = dbconn.ExecuteSql(sql, new { dispatchid = dispatchid, nodeid = nodeId }); return(r); }
public List <Model.MiniEnterprise> GetEnterprise(int top, string keywords) { using (RLib.DB.DbConn dbconn = Pub.GetBusinessConn()) { return(new DAL.BusinessDal().GetEnters(dbconn, keywords, top)); } }
public bool ExistClientId(RLib.DB.DbConn dbconn, string clientId, int currNodeId) { string sql = "select count(1) from dbo.node where [state]=0 and clientid=@clientId and nodeId<>@nodeId;"; int r = dbconn.ExecuteScalar <int>(sql, new { clientId = clientId, nodeId = currNodeId }); return(r > 0); }