public void TaskComplete(string TaskId) { lock (_taskServiceLock) { Log.Info("Задача " + TaskId + ", получено сообщение о завершении"); const int ATTEMPTS_MAX = 3; bool success = false; var rnd = new Random(); for (int i = 0; i < ATTEMPTS_MAX && !success; i++) { try { Task task = Task.Load(TaskId); Log.Stats("T_clust_fin", task.SequenceId, task.TaskId, DateTime.Now); task.Complete(); success = true; task.Save(); Log.Stats("T_task_fin", task.SequenceId, task.TaskId, DateTime.Now); if (task.SequenceId > 0) { var sequenceService = new SequenceService(); sequenceService.StepFinishedCallback(task.SequenceId); } } catch (Exception e) { Log.Error(String.Format( "Задача {2}, возникло исключение при завершении\n{0}\n{1}", e.Message, e.StackTrace, TaskId )); } Thread.Sleep(rnd.Next(2 * 1000), 10 * 1000); } if (!success) { TaskFail(TaskId); } } }
public void TaskFail(string TaskId) { lock (_taskServiceLock) { try { Task task = Task.Load(TaskId); task.Fail(); task.Save(); var sequenceService = new SequenceService(); sequenceService.StepFinishedCallback(task.SequenceId); } catch (Exception e) { Log.Error(String.Format( "Задача {2}, возникло исключение при завершении со статусом Fail\n{0}\n{1}", e.Message, e.StackTrace, TaskId )); } } }
public void TaskAbort(string TaskId) { lock (_taskServiceLock) { try { Task task = Task.Load(TaskId); task.Abort(); task.Save(); var sequenceService = new SequenceService(); sequenceService.StepFinishedCallback(task.SequenceId); } catch (Exception e) { Log.Error(String.Format( "Задача {2}, возникло исключение при попытке принудительного завершения\n{0}\n{1}", e.Message, e.StackTrace, TaskId )); } } }
public void TaskComplete(string TaskId) { lock (_taskServiceLock) { Log.Info("Задача " + TaskId + ", получено сообщение о завершении"); const int ATTEMPTS_MAX = 3; bool success = false; var rnd = new Random(); for (int i = 0; i < ATTEMPTS_MAX && !success; i++) { try { Task task = Task.Load(TaskId); Log.Stats("T_clust_fin", task.SequenceId, task.TaskId, DateTime.Now); task.Complete(); success = true; task.Save(); Log.Stats("T_task_fin", task.SequenceId, task.TaskId, DateTime.Now); if (task.SequenceId > 0) { var sequenceService = new SequenceService(); sequenceService.StepFinishedCallback(task.SequenceId); } } catch (Exception e) { Log.Error(String.Format( "Задача {2}, возникло исключение при завершении\n{0}\n{1}", e.Message, e.StackTrace, TaskId )); } Thread.Sleep(rnd.Next(2*1000), 10*1000); } if (!success) TaskFail(TaskId); } }