示例#1
0
 /** 恢复作业 */
 public synchronized void remove(TimerTask task) {
   JobWrapper wraper = (JobWrapper) jobWrapperMap.remove(task);
   if (wraper != null) {
     wraper.setCurrentStatus(JobStatus.DEAD);
     jobWrapperList.remove(wraper);
   }
 }
示例#2
0
 /** 取消作业 */
 public synchronized void cancel(TimerTask task) {
   JobWrapper wraper = this.getWrapper(task);
   if (wraper != null) {
     wraper.setCurrentStatus(JobStatus.DEAD);
     this.jobWrapperMap.remove(task);
     this.jobWrapperList.remove(wraper);
   }
 }
示例#3
0
  /** 清空对列 */
  public synchronized void clear() {
    Iterator itor = jobWrapperList.iterator();
    while (itor.hasNext()) {
      JobWrapper wrapper = (JobWrapper) itor.next();
      wrapper.setCurrentStatus(JobStatus.DEAD);
    }

    jobWrapperMap.clear();
    jobWrapperList.clear();
    this.newJobMayBeScheduled = false;
  }
示例#4
0
 /** 将对象压入队列的尾部 */
 public synchronized void add(JobWrapper wrapper) {
   if (!jobWrapperList.contains(wrapper)) {
     this.jobWrapperList.add(wrapper);
     wrapper.setCurrentStatus(JobStatus.WAITING);
     if (wrapper.getJob() instanceof TimerTaskJob) {
       this.jobWrapperMap.put(((TimerTaskJob) wrapper.getJob()).getTimerTask(), wrapper);
     } else {
       this.jobWrapperMap.put(wrapper.getJob(), wrapper);
     }
     this.newJobMayBeScheduled = true;
     this.resort();
   }
 }
示例#5
0
 /** 将队列中元素首作业取出,顺便也将与它在下一时间并发的作业也取出 */
 public synchronized List poll() {
   JobWrapper jobWrapper = null;
   this.pollList.clear();
   int size = this.size();
   if (size > 0) {
     JobWrapper headJobWrapper = (JobWrapper) this.jobWrapperList.get(0);
     this.pollList.add(headJobWrapper);
     if (size > 1) {
       Iterator itor = jobWrapperList.iterator();
       while (itor.hasNext()) {
         jobWrapper = (JobWrapper) itor.next();
         if (headJobWrapper != jobWrapper) {
           if (headJobWrapper.getNextRunTime() == jobWrapper.getNextRunTime()) {
             this.pollList.add(jobWrapper);
           } else {
             break;
           }
         }
       }
     }
   }
   return this.pollList;
 }
示例#6
0
 /** 恢复作业 */
 public synchronized void resume(TimerTask task) {
   JobWrapper wraper = this.getWrapper(task);
   if (wraper != null) {
     wraper.setCurrentStatus(JobStatus.WAITING);
   }
 }
示例#7
0
 /** 挂起作业 */
 public synchronized void suspend(TimerTask task) {
   JobWrapper wraper = this.getWrapper(task);
   if (wraper != null) {
     wraper.setCurrentStatus(JobStatus.SUSPENDED);
   }
 }
示例#8
0
 /** 恢复作业 */
 public synchronized void resume(Job job) {
   JobWrapper wraper = this.getWrapper(job);
   if (wraper != null) {
     wraper.setCurrentStatus(JobStatus.WAITING);
   }
 }