List<JobExecutionContext> jobs = jobExecutionContext.getScheduler().getCurrentlyExecutingJobs(); for (JobExecutionContext job : jobs) { if (job.getTrigger().equals(jobExecutionContext.getTrigger()) && !job.getJobInstance().equals(this)) { logger.info("There's another instance running, so leaving" + this); return; } }
job = jec.getJobInstance(); if (job instanceof InterruptableJob) { ((InterruptableJob)job).interrupt();
job = jec.getJobInstance(); if (job instanceof InterruptableJob) { ((InterruptableJob)job).interrupt();
jobDetail = jec.getJobDetail(); if (jobKey.equals(jobDetail.getKey())) { job = jec.getJobInstance(); if (job instanceof InterruptableJob) { ((InterruptableJob)job).interrupt();
jobDetail = jec.getJobDetail(); if (jobKey.equals(jobDetail.getKey())) { job = jec.getJobInstance(); if (job instanceof InterruptableJob) { ((InterruptableJob)job).interrupt();
List<JobExecutionContext> jobs = getCurrentlyExecutingJobs(); for(JobExecutionContext job: jobs) { if(job.getJobInstance() instanceof InterruptableJob) try { ((InterruptableJob)job.getJobInstance()).interrupt(); } catch (Throwable e) {
List<JobExecutionContext> jobs = getCurrentlyExecutingJobs(); for(JobExecutionContext job: jobs) { if(job.getJobInstance() instanceof InterruptableJob) try { ((InterruptableJob)job.getJobInstance()).interrupt(); } catch (Throwable e) {
/** * <p> * <p/> * Called by the <code>{@link Scheduler}</code> after a <code>{@link Job}</code> * has been executed, and be for the associated <code>Trigger</code>'s * <code>triggered(xx)</code> method has been called.</p> */ public void jobWasExecuted( JobExecutionContext context, JobExecutionException jobException ) { Job job = context.getJobInstance(); // Only attempt to null the ServiceBroker when we are dealing // with subclasses AbstractJob. if ( job instanceof AbstractJob ) { } } }
/** * @see org.quartz.JobListener#jobExecutionVetoed(org.quartz.JobExecutionContext) */ public void jobExecutionVetoed(JobExecutionContext jobExecutionContext) { if (jobExecutionContext.getJobInstance() instanceof Job) { throw new UnsupportedOperationException("JobListener does not implement jobExecutionVetoed(JobExecutionContext jobExecutionContext)"); } }
protected StatelessJob getBosJob(final JobExecutionContext context) { final Job instance = context.getJobInstance(); if (instance != null && instance instanceof AbstractQuartzJob) { final AbstractQuartzJob job = (AbstractQuartzJob) instance; return job.getBosJob(); } return null; }
protected StatelessJob getBosJob(final JobExecutionContext context) { final Job instance = context.getJobInstance(); if (instance != null && instance instanceof AbstractQuartzJob) { final AbstractQuartzJob job = (AbstractQuartzJob) instance; return job.getBosJob(); } return null; }
public List<ExecutionRunnable> getCurrentExecutions() { List<JobExecutionContext> excutingJobs; try { excutingJobs = scheduler.getCurrentlyExecutingJobs(); } catch (SchedulerException e) { throw new RuntimeException("Unexepected error occurred while getting executing jobs", e); } List<ExecutionRunnable> result = new ArrayList<ExecutionRunnable>(excutingJobs.size()); for(JobExecutionContext jobContext:excutingJobs) { result.add(((ExecutionJob) jobContext.getJobInstance()).getRunnable()); } return result; }
/** * @see org.quartz.JobListener#jobToBeExecuted(org.quartz.JobExecutionContext) */ public void jobToBeExecuted(JobExecutionContext jobExecutionContext) { if (jobExecutionContext.getJobInstance() instanceof Job) { schedulerService.initializeJob(jobExecutionContext.getJobDetail().getName(), (Job) jobExecutionContext.getJobInstance()); initializeLogging(jobExecutionContext); if (schedulerService.shouldNotRun(jobExecutionContext.getJobDetail())) { ((Job) jobExecutionContext.getJobInstance()).setNotRunnable(true); } } }
public void run() { try { ((InterruptableJob) context.getJobInstance()).interrupt(); } catch (Exception e) { log.error( "Failed to interrupt job " + job.getJobKey(), e ); } } }, timeout.interval, timeout.unit );
@Override public List<JobInstance> getRunningJobs() throws ScheduleServiceException { List<JobInstance> jobInstances = new ArrayList<JobInstance>(); try { List<JobExecutionContext> jobs = scheduler.getCurrentlyExecutingJobs(); for (JobExecutionContext context : jobs) { Job instance = context.getJobInstance(); if (instance instanceof JobInstance) { JobInstance jobInstance = (JobInstance) instance; jobInstances.add(jobInstance); } } } catch (Exception e) { throw new ScheduleServiceException(e); } return jobInstances; }
/** * This overridden method ... * * @see org.quartz.JobListener#jobWasExecuted(org.quartz.JobExecutionContext, org.quartz.JobExecutionException) */ public void jobWasExecuted(JobExecutionContext context, JobExecutionException exception) { if (context.getJobInstance() instanceof MessageServiceExecutorJob && exception != null) { PersistedMessageBO message = (PersistedMessageBO)context.getJobDetail().getJobDataMap().get(MessageServiceExecutorJob.MESSAGE_KEY); message.setQueueStatus(KSBConstants.ROUTE_QUEUE_EXCEPTION); message = KSBServiceLocator.getMessageQueueService().save(message); } }
/** * @see org.quartz.JobListener#jobWasExecuted(org.quartz.JobExecutionContext, org.quartz.JobExecutionException) */ public void jobWasExecuted(JobExecutionContext jobExecutionContext, JobExecutionException jobExecutionException) { if (jobExecutionContext.getJobInstance() instanceof Job) { try { if (!((Job) jobExecutionContext.getJobInstance()).isNotRunnable()) { notify(jobExecutionContext, schedulerService.getStatus(jobExecutionContext.getJobDetail())); } } finally { completeLogging(jobExecutionContext); } } }
public void interruptJob(String jobName) { List<JobExecutionContext> runningJobs = getRunningJobs(); for (JobExecutionContext jobCtx : runningJobs) { if (jobName.equals(jobCtx.getJobDetail().getName())) { // if so... try { ((Job) jobCtx.getJobInstance()).interrupt(); } catch (UnableToInterruptJobException ex) { LOG.warn("Unable to perform job interrupt", ex); } break; } } }
private void completeLogging(JobExecutionContext jobExecutionContext) { ((Job) jobExecutionContext.getJobInstance()).getNdcAppender().close(); Logger.getRootLogger().removeAppender(((Job) jobExecutionContext.getJobInstance()).getNdcAppender()); NDC.pop(); }
protected void initializeLogging(JobExecutionContext jobExecutionContext) { try { Calendar startTimeCalendar = dateTimeService.getCurrentCalendar(); StringBuffer nestedDiagnosticContext = new StringBuffer(StringUtils.substringAfter(BatchSpringContext.getJobDescriptor(jobExecutionContext.getJobDetail().getName()).getNamespaceCode(), "-").toLowerCase()).append(File.separator).append(jobExecutionContext.getJobDetail().getName()).append("-").append(dateTimeService.toDateTimeStringForFilename(dateTimeService.getCurrentDate())); ((Job) jobExecutionContext.getJobInstance()).setNdcAppender(new FileAppender(Logger.getRootLogger().getAppender("LogFile").getLayout(), getLogFileName(nestedDiagnosticContext.toString()))); ((Job) jobExecutionContext.getJobInstance()).getNdcAppender().addFilter(new NDCFilter(nestedDiagnosticContext.toString())); Logger.getRootLogger().addAppender(((Job) jobExecutionContext.getJobInstance()).getNdcAppender()); NDC.push(nestedDiagnosticContext.toString()); } catch (IOException e) { LOG.warn("Could not initialize special custom logging for job: " + jobExecutionContext.getJobDetail().getName(), e); } }