private void ExecuteJob(Job job, IWorker worker) { try { Log.Debug("Dispatching {0} to {1}", job.GetType().FullName, worker.GetType().FullName); worker.Execute(job, ProcessAsCompleted, CancellationTokenForExecutionOfJob); } finally { FinalizeWorker(worker); } }
private void DispatchJob(Job job) { var configuration = Repository.Settings.JobConfigurations.Single(c => c.JobAndWorkerType.JobType.Type == job.GetType()); ApplyConfigurationToJob(job, configuration); var worker = InitializeWorkerAndJob(job); Log.DispatcherActivity(Repository.Settings.DispatcherId, DispatcherActivity.JobWasDispatched, job, job.ExecutionStatus, job.ExecutionStatus); ExecuteJob(job, worker); }