Java Code Examples for org.springframework.scheduling.quartz.SchedulerFactoryBean#setWaitForJobsToCompleteOnShutdown()
The following examples show how to use
org.springframework.scheduling.quartz.SchedulerFactoryBean#setWaitForJobsToCompleteOnShutdown() .
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: SchedulerConfig.java From Almost-Famous with MIT License | 7 votes |
@Bean public SchedulerFactoryBean schedulerFactoryBean() throws IOException { //获取配置属性 PropertiesFactoryBean propertiesFactoryBean = new PropertiesFactoryBean(); propertiesFactoryBean.setLocation(new ClassPathResource("/quartz.properties")); //在quartz.properties中的属性被读取并注入后再初始化对象 propertiesFactoryBean.afterPropertiesSet(); //创建SchedulerFactoryBean SchedulerFactoryBean factory = new SchedulerFactoryBean(); factory.setQuartzProperties(propertiesFactoryBean.getObject()); //使用数据源,自定义数据源 factory.setJobFactory(jobFactory); factory.setWaitForJobsToCompleteOnShutdown(true);//这样当spring关闭时,会等待所有已经启动的quartz job结束后spring才能完全shutdown。 factory.setOverwriteExistingJobs(false); factory.setStartupDelay(1); return factory; }
Example 2
Source File: RobotScheduledConfig.java From Almost-Famous with MIT License | 6 votes |
@Bean public SchedulerFactoryBean schedulerFactoryBean() throws IOException { //获取配置属性 PropertiesFactoryBean propertiesFactoryBean = new PropertiesFactoryBean(); propertiesFactoryBean.setLocation(new ClassPathResource("/quartz.properties")); //在quartz.properties中的属性被读取并注入后再初始化对象 propertiesFactoryBean.afterPropertiesSet(); //创建SchedulerFactoryBean SchedulerFactoryBean factory = new SchedulerFactoryBean(); factory.setQuartzProperties(propertiesFactoryBean.getObject()); //使用数据源,自定义数据源 factory.setJobFactory(jobFactory); factory.setWaitForJobsToCompleteOnShutdown(true);//这样当spring关闭时,会等待所有已经启动的quartz job结束后spring才能完全shutdown。 factory.setOverwriteExistingJobs(false); factory.setStartupDelay(1); return factory; }
Example 3
Source File: ScheduleAutoConfiguration.java From hsweb-framework with Apache License 2.0 | 6 votes |
@Bean public SchedulerFactoryBean schedulerFactory(JobFactory jobFactory) { SchedulerFactoryBean schedulerFactoryBean = new SchedulerFactoryBean(); schedulerFactoryBean.setApplicationContext(applicationContext); schedulerFactoryBean.setAutoStartup(schedulerProperties.isAutoStartup()); schedulerFactoryBean.setDataSource(dataSource); schedulerFactoryBean.setTransactionManager(platformTransactionManager); schedulerFactoryBean.setOverwriteExistingJobs(schedulerProperties.isOverwriteExistingJobs()); schedulerFactoryBean.setSchedulerFactoryClass(StdSchedulerFactory.class); schedulerFactoryBean.setBeanName(schedulerProperties.getBeanName()); schedulerFactoryBean.setJobFactory(jobFactory); schedulerFactoryBean.setWaitForJobsToCompleteOnShutdown(schedulerProperties.isWaitOnShutdown()); schedulerFactoryBean.setQuartzProperties(schedulerProperties.getProperties()); schedulerFactoryBean.setStartupDelay(schedulerProperties.getStartupDelay()); schedulerFactoryBean.setCalendars(calendarMap); schedulerFactoryBean.setSchedulerListeners(schedulerListeners); return schedulerFactoryBean; }
Example 4
Source File: ApiBootQuartzAutoConfiguration.java From beihu-boot with Apache License 2.0 | 5 votes |
@Bean @ConditionalOnMissingBean public SchedulerFactoryBean quartzScheduler() { SchedulerFactoryBean schedulerFactoryBean = new SchedulerFactoryBean(); SpringBeanJobFactory jobFactory = new SpringBeanJobFactory(); jobFactory.setApplicationContext(this.applicationContext); schedulerFactoryBean.setJobFactory(jobFactory); if (this.properties.getSchedulerName() != null) { schedulerFactoryBean.setSchedulerName(this.properties.getSchedulerName()); } schedulerFactoryBean.setAutoStartup(this.properties.isAutoStartup()); schedulerFactoryBean.setStartupDelay((int) this.properties.getStartupDelay().getSeconds()); schedulerFactoryBean.setWaitForJobsToCompleteOnShutdown(this.properties.isWaitForJobsToCompleteOnShutdown()); schedulerFactoryBean.setOverwriteExistingJobs(this.properties.isOverwriteExistingJobs()); if (!this.properties.getProperties().isEmpty()) { schedulerFactoryBean.setQuartzProperties(this.asProperties(this.properties.getProperties())); } if (this.jobDetails != null && this.jobDetails.length > 0) { schedulerFactoryBean.setJobDetails(this.jobDetails); } if (this.calendars != null && !this.calendars.isEmpty()) { schedulerFactoryBean.setCalendars(this.calendars); } if (this.triggers != null && this.triggers.length > 0) { schedulerFactoryBean.setTriggers(this.triggers); } this.customize(schedulerFactoryBean); return schedulerFactoryBean; }
Example 5
Source File: JobQuartzAutoConfiguration.java From spring-boot-starter-micro-job with Apache License 2.0 | 5 votes |
@Bean @ConditionalOnMissingBean public SchedulerFactoryBean quartzScheduler() { SchedulerFactoryBean schedulerFactoryBean = new SchedulerFactoryBean(); SpringBeanJobFactory jobFactory = new SpringBeanJobFactory(); jobFactory.setApplicationContext(this.applicationContext); schedulerFactoryBean.setJobFactory(jobFactory); if (this.properties.getSchedulerName() != null) { schedulerFactoryBean.setSchedulerName(this.properties.getSchedulerName()); } schedulerFactoryBean.setAutoStartup(this.properties.isAutoStartup()); schedulerFactoryBean.setStartupDelay((int) this.properties.getStartupDelay().getSeconds()); schedulerFactoryBean.setWaitForJobsToCompleteOnShutdown(this.properties.isWaitForJobsToCompleteOnShutdown()); schedulerFactoryBean.setOverwriteExistingJobs(this.properties.isOverwriteExistingJobs()); if (!this.properties.getProperties().isEmpty()) { schedulerFactoryBean.setQuartzProperties(this.asProperties(this.properties.getProperties())); } if (this.jobDetails != null && this.jobDetails.length > 0) { schedulerFactoryBean.setJobDetails(this.jobDetails); } if (this.calendars != null && !this.calendars.isEmpty()) { schedulerFactoryBean.setCalendars(this.calendars); } if (this.triggers != null && this.triggers.length > 0) { schedulerFactoryBean.setTriggers(this.triggers); } this.customize(schedulerFactoryBean); return schedulerFactoryBean; }
Example 6
Source File: ApiBootQuartzAutoConfiguration.java From api-boot with Apache License 2.0 | 5 votes |
@Bean @ConditionalOnMissingBean public SchedulerFactoryBean quartzScheduler() { SchedulerFactoryBean schedulerFactoryBean = new SchedulerFactoryBean(); SpringBeanJobFactory jobFactory = new SpringBeanJobFactory(); jobFactory.setApplicationContext(this.applicationContext); schedulerFactoryBean.setJobFactory(jobFactory); if (this.properties.getSchedulerName() != null) { schedulerFactoryBean.setSchedulerName(this.properties.getSchedulerName()); } schedulerFactoryBean.setAutoStartup(this.properties.isAutoStartup()); schedulerFactoryBean.setStartupDelay((int) this.properties.getStartupDelay().getSeconds()); schedulerFactoryBean.setWaitForJobsToCompleteOnShutdown(this.properties.isWaitForJobsToCompleteOnShutdown()); schedulerFactoryBean.setOverwriteExistingJobs(this.properties.isOverwriteExistingJobs()); if (!this.properties.getProperties().isEmpty()) { schedulerFactoryBean.setQuartzProperties(this.asProperties(this.properties.getProperties())); } if (this.jobDetails != null && this.jobDetails.length > 0) { schedulerFactoryBean.setJobDetails(this.jobDetails); } if (this.calendars != null && !this.calendars.isEmpty()) { schedulerFactoryBean.setCalendars(this.calendars); } if (this.triggers != null && this.triggers.length > 0) { schedulerFactoryBean.setTriggers(this.triggers); } this.customize(schedulerFactoryBean); return schedulerFactoryBean; }
Example 7
Source File: QuartzCustomizerConfig.java From mall4j with GNU Affero General Public License v3.0 | 4 votes |
@Override public void customize(SchedulerFactoryBean schedulerFactoryBean) { schedulerFactoryBean.setWaitForJobsToCompleteOnShutdown(true); }
Example 8
Source File: QuartzSchedulerAutoConfiguration.java From spring-boot-starter-quartz with Apache License 2.0 | 4 votes |
@Bean(name = QUARTZ_SCHEDULER_FACTORY_BEAN_NAME) @ConditionalOnMissingBean public SchedulerFactoryBean autoSchedulerFactory(ApplicationContext applicationContext, JobFactory jobFactory, @Autowired(required=false) QuartzSchedulerProperties properties, @Qualifier(QUARTZ_PROPERTIES_BEAN_NAME) Properties quartzProperties, @Autowired(required=false) List<TriggerListener> triggerListeners, @Autowired(required=false) List<JobListener> jobListeners, @Autowired(required=false) List<SchedulerListener> schedulerListeners) { if (null == properties) { LOGGER.warn("no QuartzSchedulerProperties found, consider to set quartz.enabled=true in properties"); return null; } LOGGER.debug("creating SchedulerFactory"); SchedulerFactory factorySettings = properties.getSchedulerFactory(); SchedulerRepository schedulerRepo = SchedulerRepository.getInstance(); if (schedulerRepo.remove(QUARTZ_SCHEDULER_FACTORY_BEAN_NAME)) { LOGGER.debug("removed scheduler from SchedulerRepository with name: " + QUARTZ_SCHEDULER_FACTORY_BEAN_NAME); } if (null != factorySettings.getSchedulerName() && schedulerRepo.remove(factorySettings.getSchedulerName())) { LOGGER.debug("removed scheduler from SchedulerRepository with name: " + factorySettings.getSchedulerName()); } SchedulerFactoryBean factory = BeanUtils.instantiateClass(SchedulerFactoryBean.class); factory.setApplicationContext(applicationContext); factory.setJobFactory(jobFactory); Persistence persistenceSettings = properties.getPersistence(); if (persistenceSettings.isPersisted()) { factory.setDataSource(getDataSource(applicationContext, persistenceSettings)); if (persistenceSettings.isUsePlatformTxManager()) { PlatformTransactionManager txManager = getTransactionManager(applicationContext, persistenceSettings.getPlatformTxManagerBeanName()); if (null != txManager) { factory.setTransactionManager(txManager); } } } if (!StringUtils.isEmpty(factorySettings.getSchedulerName())) { factory.setSchedulerName(factorySettings.getSchedulerName()); } else { LOGGER.debug("no SchedulerName configured, using bean name: " + QUARTZ_SCHEDULER_FACTORY_BEAN_NAME); } factory.setPhase(factorySettings.getPhase()); factory.setStartupDelay(factorySettings.getStartupDelay()); factory.setAutoStartup(factorySettings.isAutoStartup()); factory.setWaitForJobsToCompleteOnShutdown(factorySettings.isWaitForJobsToCompleteOnShutdown()); factory.setOverwriteExistingJobs(factorySettings.isOverwriteExistingJobs()); factory.setExposeSchedulerInRepository(factorySettings.isExposeSchedulerInRepository()); factory.setQuartzProperties(quartzProperties); if (!CollectionUtils.isEmpty(jobListeners)) { LOGGER.info("configuring " + jobListeners.size() + " job listeners"); factory.setGlobalJobListeners(jobListeners.toArray(new JobListener[]{})); } if (!CollectionUtils.isEmpty(triggerListeners)) { LOGGER.info("configuring " + triggerListeners.size() + " trigger listeners"); factory.setGlobalTriggerListeners(triggerListeners.toArray(new TriggerListener[]{})); } if (!CollectionUtils.isEmpty(schedulerListeners)) { LOGGER.info("configuring " + schedulerListeners.size() + " scheduler listeners"); factory.setSchedulerListeners(schedulerListeners.toArray(new SchedulerListener[]{})); } Collection<Trigger> triggers = getTriggers(applicationContext); if (null != triggers && !triggers.isEmpty()) { factory.setTriggers(triggers.toArray(new Trigger[triggers.size()])); LOGGER.info("staring scheduler factory with " + triggers.size() + " job triggers"); } else { LOGGER.info("staring scheduler factory with 0 job triggers"); } QuartzSchedulerFactoryOverrideHook hook = getQuartzSchedulerFactoryOverrideHook(applicationContext); if (null != hook) { factory = hook.override(factory, properties, quartzProperties); } return factory; }