@Test public void createWithoutJobDetail() throws ParseException { SimpleTriggerFactoryBean factory = new SimpleTriggerFactoryBean(); factory.setName("myTrigger"); factory.setRepeatCount(5); factory.setRepeatInterval(1000L); factory.afterPropertiesSet(); SimpleTrigger trigger = factory.getObject(); assertEquals(5, trigger.getRepeatCount()); assertEquals(1000L, trigger.getRepeatInterval()); }
@Test public void schedulerWithSpringBeanJobFactory() throws Exception { Assume.group(TestGroup.PERFORMANCE); DummyJob.param = 0; DummyJob.count = 0; JobDetailImpl jobDetail = new JobDetailImpl(); jobDetail.setDurability(true); jobDetail.setJobClass(DummyJob.class); jobDetail.setName("myJob"); jobDetail.getJobDataMap().put("param", "10"); jobDetail.getJobDataMap().put("ignoredParam", "10"); SimpleTriggerFactoryBean trigger = new SimpleTriggerFactoryBean(); trigger.setName("myTrigger"); trigger.setJobDetail(jobDetail); trigger.setStartDelay(1); trigger.setRepeatInterval(500); trigger.setRepeatCount(1); trigger.afterPropertiesSet(); SchedulerFactoryBean bean = new SchedulerFactoryBean(); bean.setJobFactory(new SpringBeanJobFactory()); bean.setTriggers(trigger.getObject()); bean.setJobDetails(jobDetail); bean.afterPropertiesSet(); bean.start(); Thread.sleep(500); assertEquals(10, DummyJob.param); assertTrue("DummyJob should have been executed at least once.", DummyJob.count > 0); bean.destroy(); }
@Test public void schedulerWithSpringBeanJobFactoryAndParamMismatchNotIgnored() throws Exception { Assume.group(TestGroup.PERFORMANCE); DummyJob.param = 0; DummyJob.count = 0; JobDetailImpl jobDetail = new JobDetailImpl(); jobDetail.setDurability(true); jobDetail.setJobClass(DummyJob.class); jobDetail.setName("myJob"); jobDetail.getJobDataMap().put("para", "10"); jobDetail.getJobDataMap().put("ignoredParam", "10"); SimpleTriggerFactoryBean trigger = new SimpleTriggerFactoryBean(); trigger.setName("myTrigger"); trigger.setJobDetail(jobDetail); trigger.setStartDelay(1); trigger.setRepeatInterval(500); trigger.setRepeatCount(1); trigger.afterPropertiesSet(); SchedulerFactoryBean bean = new SchedulerFactoryBean(); SpringBeanJobFactory jobFactory = new SpringBeanJobFactory(); jobFactory.setIgnoredUnknownProperties("ignoredParam"); bean.setJobFactory(jobFactory); bean.setTriggers(trigger.getObject()); bean.setJobDetails(jobDetail); bean.afterPropertiesSet(); Thread.sleep(500); assertEquals(0, DummyJob.param); assertTrue(DummyJob.count == 0); bean.destroy(); }
@Test public void schedulerWithQuartzJobBean() throws Exception { Assume.group(TestGroup.PERFORMANCE); DummyJob.param = 0; DummyJob.count = 0; JobDetailImpl jobDetail = new JobDetailImpl(); jobDetail.setDurability(true); jobDetail.setJobClass(DummyJobBean.class); jobDetail.setName("myJob"); jobDetail.getJobDataMap().put("param", "10"); SimpleTriggerFactoryBean trigger = new SimpleTriggerFactoryBean(); trigger.setName("myTrigger"); trigger.setJobDetail(jobDetail); trigger.setStartDelay(1); trigger.setRepeatInterval(500); trigger.setRepeatCount(1); trigger.afterPropertiesSet(); SchedulerFactoryBean bean = new SchedulerFactoryBean(); bean.setTriggers(trigger.getObject()); bean.setJobDetails(jobDetail); bean.afterPropertiesSet(); bean.start(); Thread.sleep(500); assertEquals(10, DummyJobBean.param); assertTrue(DummyJobBean.count > 0); bean.destroy(); }
@Test public void schedulerWithSpringBeanJobFactoryAndQuartzJobBean() throws Exception { Assume.group(TestGroup.PERFORMANCE); DummyJobBean.param = 0; DummyJobBean.count = 0; JobDetailImpl jobDetail = new JobDetailImpl(); jobDetail.setDurability(true); jobDetail.setJobClass(DummyJobBean.class); jobDetail.setName("myJob"); jobDetail.getJobDataMap().put("param", "10"); SimpleTriggerFactoryBean trigger = new SimpleTriggerFactoryBean(); trigger.setName("myTrigger"); trigger.setJobDetail(jobDetail); trigger.setStartDelay(1); trigger.setRepeatInterval(500); trigger.setRepeatCount(1); trigger.afterPropertiesSet(); SchedulerFactoryBean bean = new SchedulerFactoryBean(); bean.setJobFactory(new SpringBeanJobFactory()); bean.setTriggers(trigger.getObject()); bean.setJobDetails(jobDetail); bean.afterPropertiesSet(); bean.start(); Thread.sleep(500); assertEquals(10, DummyJobBean.param); assertTrue(DummyJobBean.count > 0); bean.destroy(); }
@Test public void schedulerWithTaskExecutor() throws Exception { Assume.group(TestGroup.PERFORMANCE); CountingTaskExecutor taskExecutor = new CountingTaskExecutor(); DummyJob.count = 0; JobDetailImpl jobDetail = new JobDetailImpl(); jobDetail.setDurability(true); jobDetail.setJobClass(DummyJob.class); jobDetail.setName("myJob"); SimpleTriggerFactoryBean trigger = new SimpleTriggerFactoryBean(); trigger.setName("myTrigger"); trigger.setJobDetail(jobDetail); trigger.setStartDelay(1); trigger.setRepeatInterval(500); trigger.setRepeatCount(1); trigger.afterPropertiesSet(); SchedulerFactoryBean bean = new SchedulerFactoryBean(); bean.setTaskExecutor(taskExecutor); bean.setTriggers(trigger.getObject()); bean.setJobDetails(jobDetail); bean.afterPropertiesSet(); bean.start(); Thread.sleep(500); assertTrue("DummyJob should have been executed at least once.", DummyJob.count > 0); assertEquals(DummyJob.count, taskExecutor.count); bean.destroy(); }
public SimpleTrigger build() throws ParseException { triggerFactoryBean.afterPropertiesSet(); return triggerFactoryBean.getObject(); } }
@RequestMapping("/schedule") public String schedule() { String scheduled = "Job is Scheduled!!"; try { JobDetailFactoryBean jdfb = ConfigureQuartz.createJobDetail(DynamicJob.class); jdfb.setBeanName("dynamicJobBean"); jdfb.afterPropertiesSet(); SimpleTriggerFactoryBean stfb = ConfigureQuartz.createTrigger(jdfb.getObject(),5000L); stfb.setBeanName("dynamicJobBeanTrigger"); stfb.afterPropertiesSet(); schedFactory.getScheduler().scheduleJob(jdfb.getObject(), stfb.getObject()); } catch (Exception e) { scheduled = "Could not schedule a job. " + e.getMessage(); } return scheduled; }
@Override public Trigger buildTrigger(JobTrigger jobTrigger, JobDetail jobDetail) { Preconditions.checkArgument(isApplicable(jobTrigger.getClass()), "Not supported jobTrigger type: " + jobTrigger.getClass()); simpleTriggerFactoryBean.setRepeatCount(((SimpleJobTrigger) jobTrigger).getRepeatCount()); simpleTriggerFactoryBean.setStartDelay(((SimpleJobTrigger) jobTrigger).getStartDelay()); simpleTriggerFactoryBean.setRepeatInterval(((SimpleJobTrigger) jobTrigger).getRepeatInterval()); simpleTriggerFactoryBean.setJobDetail(jobDetail); simpleTriggerFactoryBean.setGroup(jobDetail.getKey().getGroup()); simpleTriggerFactoryBean.setName(jobDetail.getKey().getName()); Map<String, Object> triggerInstance = new HashMap<String, Object>(); triggerInstance.put(JOB_TRIGGER_CLASS, SimpleJobTrigger.class.getName()); triggerInstance.put(JOB_TRIGGER_INSTANCE, convertToList((SimpleJobTrigger) jobTrigger)); // This not work // simpleTriggerFactoryBean.setJobDataAsMap(triggerInstance); jobDetail.getJobDataMap().putAll(triggerInstance); try { simpleTriggerFactoryBean.afterPropertiesSet(); } catch (Exception e) { throw new TriggerDefinitionException(e); } return simpleTriggerFactoryBean.getObject(); }
/** * Create a Single trigger. * * @param triggerName Trigger name. * @param startTime Trigger start time. * @param misFireInstruction Misfire instruction (what to do in case of misfire happens). * * @return Trigger */ protected static Trigger createSingleTrigger(String triggerName, Date startTime, int misFireInstruction){ SimpleTriggerFactoryBean factoryBean = new SimpleTriggerFactoryBean(); factoryBean.setName(triggerName); factoryBean.setStartTime(startTime); factoryBean.setMisfireInstruction(misFireInstruction); factoryBean.setRepeatCount(0); factoryBean.afterPropertiesSet(); return factoryBean.getObject(); }
factoryBean.setMisfireInstruction(simpleTrigger.misfireInstruction().getMisfireInstruction()); factoryBean.afterPropertiesSet();