Esempio n. 1
0
 /// <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;
         }
     }
 }
Esempio n. 2
0
        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);
        }
Esempio n. 3
0
        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);
        }
Esempio n. 4
0
 public void SaveAll(Dictionary <int, string> dic)
 {
     using (RLib.DB.DbConn dbconn = Pub.GetConn())
     {
         dal.SaveAll(dbconn, dic);
     }
 }
Esempio n. 5
0
        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);
        }
Esempio n. 6
0
        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);
        }
Esempio n. 7
0
        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);
        }
Esempio n. 8
0
        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);
        }
Esempio n. 9
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());
     }
 }
Esempio n. 10
0
        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 ?? "");
        }
Esempio n. 11
0
 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);
 }
Esempio n. 12
0
        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);
            }
        }
Esempio n. 13
0
 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;
         }
     }
 }
Esempio n. 14
0
        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;
                }
            }
        }
Esempio n. 15
0
        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);
        }
Esempio n. 16
0
 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;
         }
     }
 }
Esempio n. 17
0
        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);
        }
Esempio n. 18
0
        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;
                }
            }
        }
Esempio n. 19
0
        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);
        }
Esempio n. 20
0
        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
                });
            }
        }
Esempio n. 21
0
 public void SaveConfig(string config)
 {
     using (RLib.DB.DbConn dbconn = Pub.GetConn())
     {
         commDal.SetConfig(dbconn, config);
     }
 }
Esempio n. 22
0
 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;
         }
     }
 }
Esempio n. 23
0
        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);
        }
Esempio n. 24
0
 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;
         }
     }
 }
Esempio n. 25
0
        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);
        }
Esempio n. 26
0
        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
            });
        }
Esempio n. 27
0
        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);
        }
Esempio n. 28
0
        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);
        }
Esempio n. 29
0
 public List <Model.MiniEnterprise> GetEnterprise(int top, string keywords)
 {
     using (RLib.DB.DbConn dbconn = Pub.GetBusinessConn())
     {
         return(new DAL.BusinessDal().GetEnters(dbconn, keywords, top));
     }
 }
Esempio n. 30
0
        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);
        }