2016-09-27 3 views
0

Wie man einen bestimmten Job im Quartz-Scheduler stoppt Ich hatte mehrere ähnliche Fragen gelesen, aber die meisten Fragen haben keine Antwort und diejenigen, die einen haben, sind veraltet und beziehen sich auf a Dokumentation, die nicht mehrWie man einen bestimmten Job im Quartz-Scheduler stoppt

die Antwort in den meisten Fragen bestehen, dass diese You need to write a your job as an implementation of InterruptableJob. To interrupt this job, you need handle to Scheduler, and call interrupt(jobKey<<job name & job group>>) und der Punkt auf diesen toten Link http://www.quartz-scheduler.org/api/2.0.0/org/quartz/InterruptableJob.html

Aber jemand ein Beispiel dafür, wie diese

Antwort

0

Sie finden zu tun haben eine Erklärung hier: http://forums.terracotta.org/forums/posts/list/7700.page

Der relevante Teil ist:

public void interrupt() throws UnableToInterruptJobException 
{ 
    stopFlag.set(true); 
    Thread thread = workerThread.getAndSet(null); 
    if (thread != null) 
     thread.interrupt(); 
} 

Und Sie können es so nennen:

SchedulerFactory schedulerFactory = new StdSchedulerFactory(); 
Scheduler scheduler = schedulerFactory.getScheduler(); 
List<JobExecutionContext> currentlyExecuting = scheduler.getCurrentlyExecutingJobs(); 

for(JobExecutionContext jobExecutionContext : currentlyExecuting) 
{ 
     if(jobExecutionContext.getJobDetail().getKey().getName().equals("Name")) 
     { 
      scheduler.interrupt(jobExecutionContext.getJobDetail().getKey()); 
     } 
} 
Verwandte Themen