Exemple #1
0
        private InvokeResult RunPlanStep(PlanStepInfo objProcessInfo, InvokeResult previousStepResult)
        {
            objProcessInfo.RunCurrentCount++;
            InvokeResult invokeResult = new InvokeResult();

            try
            {
                (objProcessInfo.FullName + "开始执行").WriteLine("");
                invokeResult = objProcessInfo.Process(previousStepResult);
                (objProcessInfo.FullName + "执行结束,处理结果:" + ((invokeResult.ResultCode == "0") ? "成功" : "失败")).WriteLine("");
            }
            catch (Exception ex)
            {
                invokeResult = new InvokeResult
                {
                    ResultCode    = "-1",
                    ResultMessage = "调用失败"
                };
                (objProcessInfo.FullName + "执行异常" + ex.Message).WriteLineRed("");
                LogHelper.Write("WorkLog", objProcessInfo.FullName + "执行异常", ex, "");
            }
            return(invokeResult);
        }
Exemple #2
0
 private void ProcessNextWorkRun()
 {
     while (true)
     {
         try
         {
             WorkRule workRule = new WorkRule();
             List <Work_RunProcessInfo> createRunProcess = workRule.GetCreateRunProcess(this._Work_Host);
             if (createRunProcess.Count > 0)
             {
                 List <int> PlanIDList = (from s in createRunProcess
                                          select s.PlanID).Distinct <int>().ToList <int>();
                 List <Work_PlanStepInfo> source = (from s in workRule.Work_PlanStepInfo
                                                    where PlanIDList.Contains(s.PlanID)
                                                    select s).ToList <Work_PlanStepInfo>();
                 using (List <Work_RunProcessInfo> .Enumerator enumerator = createRunProcess.GetEnumerator())
                 {
                     while (enumerator.MoveNext())
                     {
                         Work_RunProcessInfo objWork_RunProcessInfo = enumerator.Current;
                         PlanInfo            planInfo = new PlanInfo
                         {
                             PlanRunID      = objWork_RunProcessInfo.PlanRunID,
                             PlanID         = objWork_RunProcessInfo.PlanID,
                             RunDateTime    = objWork_RunProcessInfo.RunDate,
                             WorkInfoID     = objWork_RunProcessInfo.WorkInfoID,
                             WorkInfoName   = objWork_RunProcessInfo.WorkInfoName,
                             PlanName       = objWork_RunProcessInfo.PlanName,
                             PlanConfigInfo = objWork_RunProcessInfo.ConfigInfo
                         };
                         planInfo.ProcessInfoList = new List <PlanStepInfo>();
                         foreach (Work_PlanStepInfo current in from s in
                                  (from s in source
                                   where s.PlanID == objWork_RunProcessInfo.PlanID
                                   select s).Distinct <Work_PlanStepInfo>()
                                  orderby s.SortIndex
                                  select s)
                         {
                             PlanStepInfo item = new PlanStepInfo
                             {
                                 WorkInfoName      = planInfo.WorkInfoName,
                                 RunDateTime       = objWork_RunProcessInfo.RunDate,
                                 WorkLogID         = planInfo.WorkLogID,
                                 ProcessConfig     = current.ProcessConfig,
                                 PlanConfigInfo    = planInfo.PlanConfigInfo,
                                 PlanID            = objWork_RunProcessInfo.PlanID,
                                 ProcessID         = current.ProcessID,
                                 ProcessName       = current.ProcessName,
                                 AssemblyName      = current.AssemblyName,
                                 SortIndex         = current.SortIndex,
                                 TypeName          = current.TypeName,
                                 FailProcessType   = current.FailProcessType,
                                 SucessProcessType = current.SucessProcessType,
                                 PlanStepID        = current.PlanStepID,
                                 RunCount          = current.RunCount,
                                 RunInterval       = current.RunInterval,
                                 StepName          = current.StepName,
                                 PlanName          = objWork_RunProcessInfo.PlanName
                             };
                             planInfo.ProcessInfoList.Add(item);
                         }
                         ThreadPool.QueueUserWorkItem(new WaitCallback(this.ProcessWorkRun), planInfo);
                     }
                 }
             }
         }
         catch (Exception ex)
         {
             ("循环检查各作业的计划处理出现异常:" + ex.Message).WriteLineRed("");
             try
             {
                 LogHelper.Write("WorkLog", "循环检查各作业的计划处理出现异常", ex, "");
             }
             catch (Exception exception)
             {
                 EventLogWriter.WriterLog(exception);
             }
         }
         Thread.Sleep(this._NextWorkRunSleep);
     }
 }