Mercurial > hg > mpdl-group
view software/eXist/mpdl-modules/src/de/mpg/mpiwg/berlin/mpdl/schedule/MpdlChainSchedulerListener.java @ 0:408254cf2f1d
Erstellung
author | Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de> |
---|---|
date | Wed, 24 Nov 2010 17:24:23 +0100 |
parents | |
children |
line wrap: on
line source
package de.mpg.mpiwg.berlin.mpdl.schedule; import org.apache.log4j.Logger; import org.quartz.JobDataMap; import org.quartz.JobDetail; import org.quartz.JobExecutionContext; import org.quartz.JobExecutionException; import org.quartz.JobListener; import de.mpg.mpiwg.berlin.mpdl.exception.ApplicationException; public class MpdlChainSchedulerListener implements JobListener { private static Logger LOGGER = Logger.getLogger(MpdlChainSchedulerListener.class); // Logs to EXIST_HOME/webapp/WEB-INF/logs/exist.log public String getName() { return "MpdlJobChainingListener"; } public void jobToBeExecuted(JobExecutionContext inContext) { } public void jobExecutionVetoed(JobExecutionContext inContext) { String message = "MPDL: JobChainingListener: Job execution was vetoed."; LOGGER.debug(message); } public void jobWasExecuted(JobExecutionContext inContext, JobExecutionException inException) { // after finishing his job it tries to schedule the next operation (if there is one in the queue) MpdlDocOperation docOperation = null; try { MpdlChainScheduler mpdlChainScheduler = MpdlChainScheduler.getInstance(); docOperation = getDocOperation(inContext); mpdlChainScheduler.finishOperation(docOperation); } catch (ApplicationException e) { if (docOperation != null) { docOperation.setErrorMessage(e.getMessage()); } LOGGER.error(e.getMessage()); } } private MpdlDocOperation getDocOperation(JobExecutionContext context) { MpdlDocOperation docOperation = null; if (context != null) { JobDetail job = context.getJobDetail(); JobDataMap parameters = job.getJobDataMap(); docOperation = (MpdlDocOperation) parameters.get("operation"); } return docOperation; } }