/** * Configure the SchedulerBean for Singular. * This bean have to implents InitializingBean to work properly. * * @return SingularSchedulerBean instance. */ @Bean public SingularSchedulerBean schedulerFactoryBean(DataSource dataSource) { return new SingularSchedulerBean(dataSource); }
/** * Add trigger and the trigger's job detail. * * @param trigger the trigger. * @throws SchedulerException if could not start Quartz Scheduler. */ @Override public void addTrigger(Trigger trigger) throws SchedulerException { addJobToScheduler((JobDetail) trigger.getJobDataMap().get(SINGULAR_JOB_DETAIL_KEY)); addTriggerToScheduler(trigger); }
public void initialize() throws SingularException { try { afterPropertiesSet(); } catch (Exception e) { throw SingularException.rethrow(e.getMessage(), e); } }
initSchedulerFactory(schedulerFactory); this.scheduler = createScheduler(schedulerFactory, this.schedulerName); populateSchedulerContext(); registerListeners(); registerJobsAndTriggers();
this.dataSource = SingularSchedulerBean.getConfigTimeDataSource(); if (this.dataSource == null) { throw new SchedulerConfigException( DataSource nonTxDataSource = SingularSchedulerBean.getConfigTimeNonTransactionalDataSource(); final DataSource nonTxDataSourceToUse = (nonTxDataSource != null ? nonTxDataSource : this.dataSource);
@Override public void run() { try { Thread.sleep(startupDelay * 1000L); } catch (InterruptedException ex) { getLogger().trace(ex.getMessage(), ex); } if (logger.isInfoEnabled()) { logger.info("Starting Quartz Scheduler now, after delay of " + startupDelay + " seconds"); } try { scheduler.start(); } catch (SchedulerException ex) { throw new SchedulingException("Could not start Quartz Scheduler after delay", ex); } } };
/** * Trigger the identified {@link org.quartz.JobDetail} (execute it now). * * @param jobKey * @throws SchedulerException */ @Override public void triggerJob(JobKey jobKey) throws SchedulerException { getScheduler().triggerJob(jobKey); }
@Override public void addJob(JobDetail jobDetail) throws SchedulerException { addJobToScheduler(jobDetail); }
@Override public void addTrigger(Trigger trigger, JobDetail jobDetail) throws SchedulerException { trigger.getJobDataMap().put(SINGULAR_JOB_DETAIL_KEY, jobDetail); addTriggerToScheduler(trigger); }
@Override public boolean isRunning() throws SchedulingException { if (this.scheduler != null) { try { return !this.scheduler.isInStandbyMode(); } catch (SchedulerException ex) { getLogger().trace(ex.getMessage(), ex); return false; } } return false; }
@Override public Set<JobKey> getAllJobKeys() throws SchedulerException { return getScheduler().getJobKeys(GroupMatcher.anyGroup()); } }
getLogger().debug(e.getMessage(), e); throw new SchedulerException(e);