public void init() { try { MethodInvokingJobDetailFactoryBean jobDetail = new MethodInvokingJobDetailFactoryBean(); jobDetail.setTargetObject(transactionRecovery); jobDetail.setTargetMethod("startRecover"); jobDetail.setName("transactionRecoveryJob"); jobDetail.setConcurrent(false); jobDetail.afterPropertiesSet(); CronTriggerFactoryBean cronTrigger = new CronTriggerFactoryBean(); cronTrigger.setBeanName("transactionRecoveryCronTrigger"); cronTrigger.setCronExpression(transactionConfigurator.getRecoverConfig().getCronExpression()); cronTrigger.setJobDetail(jobDetail.getObject()); cronTrigger.afterPropertiesSet(); scheduler.scheduleJob(jobDetail.getObject(), cronTrigger.getObject()); scheduler.start(); } catch (Exception e) { throw new SystemException(e); } }
/** * @see CronTriggerFactoryBean#setBeanName(String) * @param name * @return */ public QuartzCronTriggerBuilder beanName(String beanName) { triggerFactoryBean.setBeanName(beanName); return this; } /**
// Create Job JobDetailFactoryBean JobDetail = new JobDetailFactoryBean(); jobDetail.setJobClass(ScheduledJob.class); jobDetail.setName("reportJob1"); jobDetail.setDurability(true); jobDetail.setJobDataMap(new JobDataMap()); jobDetail.afterPropertiesSet(); // create CRON Trigger CronTriggerFactoryBean trigger = new CronTriggerFactoryBean(); trigger.setBeanName("UniqueCronBeanName"); trigger.setGroup("uniqueCronGroup"); trigger.setJobDetail(jobDetail.getObject()); trigger.setCronExpression("0 0 12 * * ?"); trigger.afterPropertiesSet();
// Create Job JobDetailFactoryBean JobDetail = new JobDetailFactoryBean(); jobDetail.setJobClass(ScheduledJob.class); jobDetail.setName("reportJob1"); jobDetail.setDurability(true); jobDetail.setJobDataMap(new JobDataMap()); jobDetail.afterPropertiesSet(); // create CRON Trigger CronTriggerFactoryBean trigger = new CronTriggerFactoryBean(); trigger.setBeanName("UniqueCronBeanName"); trigger.setGroup("uniqueCronGroup"); trigger.setJobDetail(jobDetail.getObject()); trigger.setCronExpression("0 0 12 * * ?"); trigger.afterPropertiesSet();
private void scheduleReport(ReportDefinition reportDef) throws ClassNotFoundException, NoSuchMethodException, ParseException, SchedulerException, Exception { //this is most likely reentrant since the method is private and called from start via plural version. synchronized (m_scheduler) { MethodInvokingJobDetailFactoryBean jobFactory = new MethodInvokingJobDetailFactoryBean(); jobFactory.setTargetObject(this); jobFactory.setTargetMethod("runReport"); jobFactory.setArguments(new Object[] { reportDef }); jobFactory.setConcurrent(false); jobFactory.setBeanName(reportDef.getDescription()); jobFactory.afterPropertiesSet(); JobDetail jobDetail = (JobDetail) jobFactory.getObject(); CronTriggerFactoryBean cronReportTrigger = new CronTriggerFactoryBean(); cronReportTrigger.setBeanName(reportDef.getDescription()); cronReportTrigger.setJobDetail(jobDetail); cronReportTrigger.setCronExpression(reportDef.getCronExpression()); cronReportTrigger.afterPropertiesSet(); m_scheduler.scheduleJob(jobDetail, cronReportTrigger.getObject()); LOG.debug("Schedule report {}", cronReportTrigger); } }