Example #1
0
 public bool Remove(Guid jobId)
 {
     lock (syncLock)
     {
         if (JobRuntimePool.ContainsKey(jobId))
         {
             JobRuntimeInfo jobRuntimeInfo = null;
             JobRuntimePool.TryGetValue(jobId, out jobRuntimeInfo);
             if (jobRuntimeInfo != null)
             {
                 var tiggerKey = new TriggerKey(jobRuntimeInfo.JobModel.JobName,
                                                jobRuntimeInfo.JobModel.JobGroup);
                 scheduler.PauseTrigger(tiggerKey);
                 scheduler.UnscheduleJob(tiggerKey);
                 scheduler.DeleteJob(new JobKey(jobRuntimeInfo.JobModel.JobName,
                                                jobRuntimeInfo.JobModel.JobGroup));
                 JobRuntimePool.TryRemove(jobId, out jobRuntimeInfo);
                 JobOperator.UpdateJobStatus(jobRuntimeInfo.JobModel.ID, 0);
                 if (!JobRuntimePool.Any(p => p.Value.AppDomain == jobRuntimeInfo.AppDomain))
                 {
                     AppDomainLoader <BaseJob> .UnLoad(jobRuntimeInfo.AppDomain);
                 }
                 return(true);
             }
         }
         return(false);
     }
 }