public override void Run() { var workerTaskFactory = new WorkerTaskFactory(); while (!IsStopped) { try { var taskContext = new TaskContext(Storage); var message = Queue.GetMessage(); if (message != null) { try { var taskRequest = new TaskRequest(message); try { var workerTaskType = workerTaskFactory.GetWorkerTaskType(taskRequest.TaskName); var workerTask = workerTaskFactory.GetWorkerTaskInstance(workerTaskType); var result = workerTask.Execute(taskRequest); result.Execute(taskRequest, taskContext); } catch (Exception ex) { new ErrorResult(ex).Execute(taskRequest, taskContext); } } finally { Queue.Acknowledge(message); } } else { Thread.Sleep(1000); } } catch (Exception ex) { Trace.TraceError("Unhandled exception: {0}", ex); } } }
public override void Execute(TaskRequest taskRequest, TaskContext context) { context.Storage.ActionError(taskRequest.Id, Exception); }
public override void Execute(TaskRequest taskRequest, TaskContext context) { context.Storage.ActionResult(taskRequest.Id, m_Result); }