public void run() { while (shouldRun) { JobInProgress job = null; synchronized (jobInitQueue) { if (jobInitQueue.size() > 0) { job = (JobInProgress) jobInitQueue.elementAt(0); jobInitQueue.remove(job); } else { try { jobInitQueue.wait(JOBINIT_SLEEP_INTERVAL); } catch (InterruptedException iex) { } } } try { if (job != null) { job.initTasks(); } } catch (Exception e) { LOG.log(Level.WARNING, "job init failed", e); job.kill(); } } }
public synchronized void killJob(String jobid) { JobInProgress job = (JobInProgress) jobs.get(jobid); job.kill(); }