private void RemoveJob(IJobExecutioner job) { lock (m_lockObj) { m_activeJobs.Remove(job); } }
public void CancelExecution(IJobExecutioner jobExecution) { if (jobExecution == null) { throw new ArgumentNullException(nameof(jobExecution)); } jobExecution.Cancel(); }
private void ExecuteJob(IJobExecutioner job) { if (job == null) { return; } m_logger.Info("Starting job execution for {0}", job.Name); TotalJobsExecuted++; ThreadPool.QueueUserWorkItem(o => { job.Execute(); job.Dispose(); this.RemoveJob(job); }); }
private void DeQueueAllJobs() { do { IJobExecutioner exec = null; if (m_jobQueue.TryDequeue(out exec)) { if (exec.Status == Data.JobStatus.Cacnceled) { continue; } ExecuteJob(exec); } } while (m_jobQueue.Count != 0); }
public void CancelExecution(IJobExecutioner jobExecution) { if(jobExecution == null) { throw new ArgumentNullException(nameof(jobExecution)); } jobExecution.Cancel(); }