public ResponseBase <AddCommandQueueItemResponse> AddCommandQueueItem(AddCommandQueueItemRequest req) { try { int nid = int.Parse(req.NodeId); var node = noderepository.FindSingle(x => x.id == nid); if (node == null) { return(ResponseToClient <AddCommandQueueItemResponse>(ResponesStatus.Failed, "当前节点" + req.NodeId + "不存在库中!")); } if (node.nodestatus == (int)NodeStatus.NoRun) { return(ResponseToClient <AddCommandQueueItemResponse>(ResponesStatus.Failed, "当前节点未启动,暂不能执行此操作!")); } string cmdName = req.CommandName.ToString(); var commandDetail = cmdRep.FindSingle(x => x.commandmainclassname == cmdName && x.isdel == 0); if (commandDetail == null) { return(ResponseToClient <AddCommandQueueItemResponse>(ResponesStatus.Failed, "未知的命令操作!")); } int r = cmdqueuerespository.Add(new tb_commandqueue() { commanddetailid = commandDetail.id, commandmainclassname = commandDetail.commandmainclassname, commandparams = string.IsNullOrEmpty(req.CommandParam) ? "":req.CommandParam, commandstate = (int)ExecuteStatus.NoExecute, createby = int.Parse(req.AdminId), createtime = DateTime.Now, failedcount = 0, nodeid = int.Parse(req.NodeId), isdel = 0, taskid = int.Parse(req.TaskId), taskversionid = int.Parse(req.TaskVersionId) }); if (r <= 0) { return(ResponseToClient <AddCommandQueueItemResponse>(ResponesStatus.Failed, "执行失败")); } if (!string.IsNullOrEmpty(req.TaskId))//如果task不为空,说明是针对任务的命令 { int tid = int.Parse(req.TaskId); var task = taskRep.FindSingle(x => x.id == tid); if (req.CommandName == CommandName.StartTaskCommand) { task.taskschedulestatus = (int)TaskScheduleStatus.WaitSchedule; taskRep.Update(task); } } return(ResponseToClient <AddCommandQueueItemResponse>(ResponesStatus.Success, "")); } catch (Exception ex) { return(ResponseToClient <AddCommandQueueItemResponse>(ResponesStatus.Exception, "添加命令队列项异常:" + JsonConvert.SerializeObject(ex))); } }