Exemplo n.º 1
0
 internal void Process()
 {
     try
     {
         if (taskStatus != TaskStatus.Waitting)
         {
             return;
         }
         lock (lockObject)
         {
             taskStatus = TaskStatus.Running;
             task.process();
             if (taskStatus == TaskStatus.WaittingForStop)
             {
                 taskStatus      = TaskStatus.Stop;
                 NextProcessTime = null;
                 return;
             }
             NextProcessTime = GetNextProcessTime(task.startTime ?? DateTime.Now);
             taskStatus      = NextProcessTime.HasValue ? TaskStatus.Waitting : TaskStatus.Stop;
             NLog.LogManager.GetLogger(TaskTypeName).Info(string.Format("任务【{0}】执行完毕,状态【{1}】 下次执行时间:{2}", TaskTypeName, taskStatus.GetDescription(), NextProcessTime.HasValue ? NextProcessTime.Value.ToString("yyyy-MM-dd HH:mm:ss") : "无"));
         }
     }
     catch (Exception ex)
     {
         taskStatus      = TaskStatus.Stop;
         NextProcessTime = null;
         NLog.LogManager.GetLogger(TaskTypeName).Error(ex, string.Format("TaskAgent.Process异常,任务【{0}】", TaskTypeName));
     }
 }