@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 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()); }
@Bean @Qualifier("articleScheduledIndexationTrigger") public SimpleTriggerFactoryBean articleScheduledIndexationTrigger( @Qualifier("articleIndexationFullJob") JobDetail articleIndexationFullJob) { SimpleTriggerFactoryBean factoryBean = new SimpleTriggerFactoryBean(); factoryBean.setName("Article re-indexation"); factoryBean.setDescription("Periodic re-indexation of all articles of the application"); factoryBean.setJobDetail(articleIndexationFullJob); factoryBean.setStartDelay((long) 30 * 1000); factoryBean.setRepeatInterval(1 * 60 * 60 * 1000); factoryBean.setRepeatCount(SimpleTrigger.REPEAT_INDEFINITELY); factoryBean.setMisfireInstruction( SimpleTrigger.MISFIRE_INSTRUCTION_RESCHEDULE_NEXT_WITH_REMAINING_COUNT); return factoryBean; }
public static SimpleTriggerFactoryBean createTrigger(JobDetail jobDetail, long pollFrequencyMs) { SimpleTriggerFactoryBean factoryBean = new SimpleTriggerFactoryBean(); factoryBean.setJobDetail(jobDetail); factoryBean.setStartDelay(0L); factoryBean.setRepeatInterval(pollFrequencyMs); factoryBean.setRepeatCount(SimpleTrigger.REPEAT_INDEFINITELY); // in case of misfire, ignore all missed triggers and continue : factoryBean.setMisfireInstruction(SimpleTrigger.MISFIRE_INSTRUCTION_RESCHEDULE_NEXT_WITH_REMAINING_COUNT); return factoryBean; }
/** * 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(); }
String endFile, int datasetId, ExtractPropertyBean epBean, UserAccountBean userAccountBean, String locale,int cnt, String xsltPath, StudyBean currentPublicStudy, StudyBean currentStudy){ SimpleTriggerFactoryBean triggerFactoryBean = new SimpleTriggerFactoryBean(); triggerFactoryBean.setBeanName("trigger1"); triggerFactoryBean.setGroup("group1"); triggerFactoryBean.setRepeatInterval(1); triggerFactoryBean.setRepeatCount(0); triggerFactoryBean.setMisfireInstruction(SimpleTrigger.MISFIRE_INSTRUCTION_FIRE_NOW); triggerFactoryBean.setJobDataMap(jobDataMap); return triggerFactoryBean;
@Bean public SimpleTriggerFactoryBean trigger(final JobDetail simpleJobDetail) { final SimpleTriggerFactoryBean trigger = new SimpleTriggerFactoryBean(); trigger.setJobDetail(simpleJobDetail); // got warning about wrong type trigger.setRepeatInterval(60000); return trigger; }
@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; }
triggerFactory.setStartTime(initialPollTime); Trigger pollTrigger = triggerFactory.getObject();
public SimpleTrigger build() throws ParseException { triggerFactoryBean.afterPropertiesSet(); return triggerFactoryBean.getObject(); } }
/** * @see SimpleTriggerFactoryBean#setRepeatInterval(long) * @param repeatInterval * @return */ public QuartzSimpleTriggerBuilder repeatInterval(long repeatInterval) { triggerFactoryBean.setRepeatInterval(repeatInterval); return this; }
/** * @see SimpleTriggerFactoryBean#setRepeatCount(int) * @param repeatCount * @return */ public QuartzSimpleTriggerBuilder repeatCount(int repeatCount) { triggerFactoryBean.setRepeatCount(repeatCount); return this; } /**
public QuartzSimpleTriggerBuilder() { triggerFactoryBean = new SimpleTriggerFactoryBean(); } /**
/** * @see SimpleTriggerFactoryBean#setJobDetail(JobDetail) * @param jobDetail * @return */ public QuartzSimpleTriggerBuilder jobDetail(JobDetail jobDetail) { triggerFactoryBean.setJobDetail(jobDetail); return this; } /**
public SimpleTrigger generateXsltTrigger(Scheduler scheduler, String xslFile, String xmlFile, String endFilePath, String endFile, int datasetId, ExtractPropertyBean epBean, UserAccountBean userAccountBean, String locale,int cnt, String xsltPath, String triggerGroupName, StudyBean currentPublicStudy,StudyBean currentStudy) { //Date startDateTime = new Date(System.currentTimeMillis()); String jobName = datasetId+ "_"+epBean.getExportFileName()[0]; if(triggerGroupName!=null) TRIGGER_GROUP_NAME = triggerGroupName; //WebApplicationContext context = ContextLoader.getCurrentWebApplicationContext(); ApplicationContext context = null; try { context = (ApplicationContext) scheduler.getContext().get("applicationContext"); } catch (SchedulerException e) { e.printStackTrace(); } SimpleTriggerFactoryBean triggerFactoryBean = context.getBean( SimpleTriggerFactoryBean.class, xslFile, xmlFile, endFilePath, endFile, datasetId, epBean, userAccountBean, locale, cnt, xsltPath, currentPublicStudy, currentStudy); SimpleTrigger trigger = triggerFactoryBean.getObject(); return trigger; }
/** * @see SimpleTriggerFactoryBean#setMisfireInstruction(int) * @param misfireInstruction * @return */ public QuartzSimpleTriggerBuilder misfireInstruction(int misfireInstruction) { triggerFactoryBean.setMisfireInstruction(misfireInstruction); return this; } /**
/** * @see SimpleTriggerFactoryBean#setStartDelay(long) * @param startDelay * @return */ public QuartzSimpleTriggerBuilder startDelay(long startDelay) { triggerFactoryBean.setStartDelay(startDelay); return this; } /**
/** * @see SimpleTriggerFactoryBean#setName(String) * @param name * @return */ public QuartzSimpleTriggerBuilder name(String name) { triggerFactoryBean.setName(name); return this; } /**
/** * @see SimpleTriggerFactoryBean#setGroup(String) * @param group * @return */ public QuartzSimpleTriggerBuilder group(String group) { triggerFactoryBean.setGroup(group); return this; } /**
@Bean @Qualifier("userScheduledIndexationTrigger") public SimpleTriggerFactoryBean userScheduledIndexationTrigger( @Qualifier("userIndexationFullJob") JobDetail userIndexationFullJob) { SimpleTriggerFactoryBean factoryBean = new SimpleTriggerFactoryBean(); factoryBean.setName("User re-indexation"); factoryBean.setDescription("Periodic re-indexation of all users of the application"); factoryBean.setJobDetail(userIndexationFullJob); factoryBean.setStartDelay((long) 30 * 1000); factoryBean.setRepeatInterval(1 * 60 * 60 * 1000); factoryBean.setRepeatCount(SimpleTrigger.REPEAT_INDEFINITELY); factoryBean.setMisfireInstruction( SimpleTrigger.MISFIRE_INSTRUCTION_RESCHEDULE_NEXT_WITH_REMAINING_COUNT); return factoryBean; }