zhouhao 8 éve
szülő
commit
edd9429118

+ 13 - 0
hsweb-web-service/hsweb-web-service-simple/src/main/java/org/hsweb/web/service/impl/SchedulerAutoConfiguration.java

@@ -17,6 +17,8 @@
 package org.hsweb.web.service.impl;
 
 import org.hsweb.web.service.impl.quartz.SimpleJobFactory;
+import org.quartz.Calendar;
+import org.quartz.SchedulerListener;
 import org.quartz.core.QuartzScheduler;
 import org.quartz.impl.StdSchedulerFactory;
 import org.quartz.spi.JobFactory;
@@ -33,6 +35,8 @@ import org.springframework.scheduling.quartz.SchedulerFactoryBean;
 import org.springframework.transaction.PlatformTransactionManager;
 
 import javax.sql.DataSource;
+import java.util.List;
+import java.util.Map;
 
 @Configuration
 @ConditionalOnClass(QuartzScheduler.class)
@@ -51,6 +55,12 @@ public class SchedulerAutoConfiguration {
     @Autowired
     private PlatformTransactionManager platformTransactionManager;
 
+    @Autowired(required = false)
+    private Map<String, Calendar> calendarMap;
+
+    @Autowired(required = false)
+    private SchedulerListener[] schedulerListeners;
+
     @Bean
     public JobFactory jobFactory() {
         SimpleJobFactory jobFactory = new SimpleJobFactory();
@@ -71,6 +81,9 @@ public class SchedulerAutoConfiguration {
         schedulerFactoryBean.setJobFactory(jobFactory);
         schedulerFactoryBean.setWaitForJobsToCompleteOnShutdown(schedulerProperties.isWaitOnShutdown());
         schedulerFactoryBean.setQuartzProperties(schedulerProperties.getProperties());
+        schedulerFactoryBean.setStartupDelay(schedulerProperties.getStartupDelay());
+        schedulerFactoryBean.setCalendars(calendarMap);
+        schedulerFactoryBean.setSchedulerListeners(schedulerListeners);
         return schedulerFactoryBean;
     }
 }

+ 9 - 0
hsweb-web-service/hsweb-web-service-simple/src/main/java/org/hsweb/web/service/impl/SchedulerProperties.java

@@ -30,6 +30,7 @@ public class SchedulerProperties {
 
     private boolean waitOnShutdown = true;
 
+    private int startupDelay = 0;
     private Properties properties;
 
     public boolean isAutoStartup() {
@@ -71,4 +72,12 @@ public class SchedulerProperties {
     public void setProperties(Properties properties) {
         this.properties = properties;
     }
+
+    public int getStartupDelay() {
+        return startupDelay;
+    }
+
+    public void setStartupDelay(int startupDelay) {
+        this.startupDelay = startupDelay;
+    }
 }