public static string CreateTask(Task_Main task)
        {
            TaskDataProcessor processor = new TaskDataProcessor();

            processor.Task = task;
            return((string)SqliteHelper.MainDbHelper.RunTransaction(new SqliteHelper.RunTransactionDelegate(processor.InsertTaskToDBTransaction)));
        }
示例#2
0
        private static void StartNewTaskSteps()
        {
            int newTaskStepCount = GetIdleRunningCount();

            if (newTaskStepCount > 0)
            {
                List <Task_Step> steps = TaskDataProcessor.GetWaitingStepsInRunningTasks(newTaskStepCount);
                newTaskStepCount = newTaskStepCount - steps.Count;
                if (newTaskStepCount > 0)
                {
                    List <Task_Step> stepsInWaitingTasks = TaskDataProcessor.GetWaitingStepsInWaitingTasks(newTaskStepCount);
                    steps.AddRange(stepsInWaitingTasks);
                }

                foreach (Task_Step step in steps)
                {
                    try
                    {
                        TaskManager.AddCurrentTask(step.Id, step.TaskId);

                        TaskDataProcessor.UpdateDataAfterBeginStep(step.Id, step.TaskId);

                        TaskManager.RunningContainer.InvokeRunTask(step.GroupName, step.ProjectName, step.ListFilePath, step.InputDir, step.MiddleDir, step.OutputDir, step.Parameters, step.Id, true, false);
                    }
                    catch (Exception ex)
                    {
                        TaskDataProcessor.UpdateDataAfterEndStep(step.Id, step.TaskId, false, ex.Message);
                        continue;
                    }
                }
            }
        }
示例#3
0
        public XmlDocument CreateTask(string requestInfo)
        {
            XmlDocument requestDoc = new XmlDocument();

            requestDoc.LoadXml(requestInfo);
            XmlElement rootNode = requestDoc.DocumentElement;
            Task_Main  task     = new Task_Main();

            task.Description  = rootNode.GetAttribute("description");
            task.Level        = int.Parse(rootNode.GetAttribute("level"));
            task.Name         = rootNode.GetAttribute("name");
            task.SerialNumber = rootNode.GetAttribute("serialNumber");

            XmlNodeList      allStepNodes = rootNode.SelectSingleNode("steps").SelectNodes("step");
            List <Task_Step> allSteps     = new List <Task_Step>();

            foreach (XmlElement stepNode in allStepNodes)
            {
                Task_Step step = new Task_Step();
                step.GroupName    = stepNode.GetAttribute("groupName");
                step.ProjectName  = stepNode.GetAttribute("projectName");
                step.ListFilePath = stepNode.GetAttribute("listFilePath");
                step.InputDir     = stepNode.GetAttribute("inputDir");
                step.MiddleDir    = stepNode.GetAttribute("middleDir");
                step.OutputDir    = stepNode.GetAttribute("outputDir");
                step.Parameters   = stepNode.GetAttribute("parameters");
                step.RunIndex     = int.Parse(stepNode.GetAttribute("runIndex"));
                allSteps.Add(step);
            }
            task.AllSteps = allSteps;

            String taskId = TaskDataProcessor.CreateTask(task);

            return(this.GetDetailInfoByTaskIdValue(taskId));
        }
        public static bool DeleteTask(string taskId)
        {
            TaskDataProcessor processor = new TaskDataProcessor();

            processor.Task    = new Task_Main();
            processor.Task.Id = taskId;
            return((bool)SqliteHelper.MainDbHelper.RunTransaction(processor.DeleteTaskTransaction));
        }
示例#5
0
 public static void ExportGrabResultFlag(string stepId, string projectName, bool succeed, string msg)
 {
     if (stepId != null && stepId.Length != 0)
     {
         string taskId = CurrentTaskSteps[stepId];
         TaskDataProcessor.UpdateDataAfterEndStep(stepId, taskId, succeed, msg);
         TaskManager.RemoveCurrentTask(stepId);
     }
 }
        public static bool ChangeTaskLevel(string taskId, int newLevel)
        {
            TaskDataProcessor processor = new TaskDataProcessor();

            processor.Task       = new Task_Main();
            processor.Task.Id    = taskId;
            processor.Task.Level = newLevel;
            return((bool)SqliteHelper.MainDbHelper.RunTransaction(processor.ChangeTaskLevelTransaction));
        }
        public static void UpdateDataAfterBeginStep(string stepId, string taskId)
        {
            TaskDataProcessor processor = new TaskDataProcessor();

            processor.Step            = new Task_Step();
            processor.Step.Id         = stepId;
            processor.Step.TaskId     = taskId;
            processor.Step.StatusType = TaskStatusType.Running;
            SqliteHelper.MainDbHelper.RunTransaction(processor.UpdateDataAfterBeginStep);
        }
        public static void UpdateDataAfterEndStep(string stepId, string taskId, bool succeed, string message)
        {
            TaskDataProcessor processor = new TaskDataProcessor();

            processor.Step            = new Task_Step();
            processor.Step.Id         = stepId;
            processor.Step.TaskId     = taskId;
            processor.Step.StatusType = succeed ? TaskStatusType.Succeed : TaskStatusType.Error;
            processor.Step.Message    = message;
            SqliteHelper.MainDbHelper.RunTransaction(processor.UpdateDataAfterEndStep);
        }
示例#9
0
        public XmlDocument GetDetailInfoByTaskIdValue(string taskId)
        {
            //根据任务Id获取任务步骤信息
            Dictionary <string, object> taskInfo = TaskDataProcessor.GetDetailInfoByTaskId(taskId);

            XmlDocument resultDoc = new XmlDocument();

            resultDoc.LoadXml("<?xml version=\"1.0\" encoding=\"utf-8\" ?><result></result>");
            XmlElement resultRootNode = resultDoc.DocumentElement;

            resultRootNode.SetAttribute("code", "000");

            Task_Main task = (Task_Main)taskInfo["task"];

            resultRootNode.SetAttribute("createTime", task.CreateTime == null ? "" : ((DateTime)task.CreateTime).ToString("yyyy-MM-dd HH:mm:ss"));
            resultRootNode.SetAttribute("description", task.Description);
            resultRootNode.SetAttribute("id", task.Id);
            resultRootNode.SetAttribute("level", task.Level.ToString());
            resultRootNode.SetAttribute("name", task.Name);
            resultRootNode.SetAttribute("serialNumber", task.SerialNumber);
            resultRootNode.SetAttribute("statusType", task.StatusType.ToString());

            List <Task_Step> steps        = (List <Task_Step>)taskInfo["steps"];
            XmlElement       stepListNode = resultDoc.CreateElement("steps");

            resultRootNode.AppendChild(stepListNode);
            foreach (Task_Step step in steps)
            {
                XmlElement stepNode = resultDoc.CreateElement("step");
                stepNode.SetAttribute("endTime", step.EndTime == null ? "" : ((DateTime)step.EndTime).ToString("yyyy-MM-dd HH:mm:ss"));
                stepNode.SetAttribute("message", step.Message);
                stepNode.SetAttribute("id", step.Id);
                stepNode.SetAttribute("listFilePath", step.ListFilePath);
                stepNode.SetAttribute("inputDir", step.InputDir);
                stepNode.SetAttribute("middleDir", step.MiddleDir);
                stepNode.SetAttribute("outputDir", step.OutputDir);
                stepNode.SetAttribute("parameters", step.Parameters);
                stepNode.SetAttribute("groupName", step.GroupName);
                stepNode.SetAttribute("projectName", step.ProjectName);
                stepNode.SetAttribute("runIndex", step.RunIndex.ToString());
                stepNode.SetAttribute("startTime", step.StartTime == null ? "" : ((DateTime)step.StartTime).ToString("yyyy-MM-dd HH:mm:ss"));
                stepNode.SetAttribute("statusType", step.StatusType.ToString());
                stepNode.SetAttribute("taskId", step.TaskId);
                stepListNode.AppendChild(stepNode);
            }

            return(resultDoc);
        }
示例#10
0
        public XmlDocument DeleteTask(string requestInfo)
        {
            XmlDocument requestDoc = new XmlDocument();

            requestDoc.LoadXml(requestInfo);
            XmlElement rootNode = requestDoc.DocumentElement;
            string     taskId   = rootNode.GetAttribute("taskId");

            TaskDataProcessor.DeleteTask(taskId);

            XmlDocument resultDoc = new XmlDocument();

            resultDoc.LoadXml("<?xml version=\"1.0\" encoding=\"utf-8\" ?><result></result>");
            XmlElement resultRootNode = resultDoc.DocumentElement;

            resultRootNode.SetAttribute("code", "000");
            return(resultDoc);
        }
示例#11
0
        public XmlDocument ChangeTaskLevel(string requestInfo)
        {
            XmlDocument requestDoc = new XmlDocument();

            requestDoc.LoadXml(requestInfo);
            XmlElement rootNode = requestDoc.DocumentElement;
            string     taskId   = rootNode.GetAttribute("taskId");

            int newLevel = int.Parse(rootNode.GetAttribute("newLevel"));

            TaskDataProcessor.ChangeTaskLevel(taskId, newLevel);

            XmlDocument resultDoc = new XmlDocument();

            resultDoc.LoadXml("<?xml version=\"1.0\" encoding=\"utf-8\" ?><result></result>");
            XmlElement resultRootNode = resultDoc.DocumentElement;

            resultRootNode.SetAttribute("code", "000");
            return(resultDoc);
        }
示例#12
0
        public XmlDocument GetTaskList(string requestInfo)
        {
            //可获取未执行、正在执行的、已经执行的任务列表
            //根据任务Id获取任务步骤信息
            XmlDocument requestDoc = new XmlDocument();

            requestDoc.LoadXml(requestInfo);
            XmlElement       rootNode     = requestDoc.DocumentElement;
            int              pageIndex    = int.Parse(rootNode.GetAttribute("pageIndex"));
            int              onePageCount = int.Parse(rootNode.GetAttribute("onePageCount"));
            List <Task_Main> tasks        = TaskDataProcessor.GetTaskList(pageIndex, onePageCount);

            XmlDocument resultDoc = new XmlDocument();

            resultDoc.LoadXml("<?xml version=\"1.0\" encoding=\"utf-8\" ?><result></result>");
            XmlElement resultRootNode = resultDoc.DocumentElement;

            resultRootNode.SetAttribute("code", "000");

            XmlElement taskListNode = resultDoc.CreateElement("tasks");

            resultRootNode.AppendChild(taskListNode);
            foreach (Task_Main task in tasks)
            {
                XmlElement taskNode = resultDoc.CreateElement("task");
                taskNode.SetAttribute("createTime", task.CreateTime == null ? "" : ((DateTime)task.CreateTime).ToString("yyyy-MM-dd HH:mm:ss"));
                taskNode.SetAttribute("description", task.Description);
                taskNode.SetAttribute("id", task.Id);
                taskNode.SetAttribute("level", task.Level.ToString());
                taskNode.SetAttribute("name", task.Name);
                taskNode.SetAttribute("serialNumber", task.SerialNumber);
                taskNode.SetAttribute("statusType", task.StatusType.ToString());
                taskListNode.AppendChild(taskNode);
            }
            return(resultDoc);
        }
示例#13
0
 private static void ResetRunningSteps()
 {
     TaskDataProcessor.ResetRunningSteps();
 }
        public static List <Task_Step> GetWaitingStepsInWaitingTasks(int count)
        {
            TaskDataProcessor processor = new TaskDataProcessor();

            return(processor.GetWaitingStepsInTasks(count, TaskStatusType.Waiting));
        }