Пример #1
0
 private void RemoveJob(IJobExecutioner job)
 {
     lock (m_lockObj)
     {
         m_activeJobs.Remove(job);
     }
 }
Пример #2
0
 public void CancelExecution(IJobExecutioner jobExecution)
 {
     if (jobExecution == null)
     {
         throw new ArgumentNullException(nameof(jobExecution));
     }
     jobExecution.Cancel();
 }
Пример #3
0
 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);
     });
 }
Пример #4
0
 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);
 }
Пример #5
0
 public void CancelExecution(IJobExecutioner jobExecution)
 {
     if(jobExecution == null)
     {
         throw new ArgumentNullException(nameof(jobExecution));
     }
     jobExecution.Cancel();
 }
Пример #6
0
		private void RemoveJob(IJobExecutioner job)
		{
			lock (m_lockObj)
			{
				m_activeJobs.Remove(job);
			}
		}
Пример #7
0
		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);
            });
		}