2017-04-18 126 views
0

我在我的spring應用程序中運行quartz調度器。Quartz Scheduler create schedulerFactoryBean Beans without quartz.properties

現在,我使用quartz.properties來包含任何屬性值,並使用它來創建schedulerFactoryBean Bean並且它工作正常。

這是我QuartzConfiguration ..

@Configuration 
public class QuartzConfiguration { 

    public static final String CONTEXT_KEY = "applicationContext"; 

    //@Autowired 
    //private DataSource dataSource; 
    @Bean 
    public SchedulerFactoryBean schedulerFactoryBean() { 
     SchedulerFactoryBean scheduler = new SchedulerFactoryBean(); 
     scheduler.setApplicationContextSchedulerContextKey(CONTEXT_KEY); 
     scheduler.setConfigLocation(new ClassPathResource("config/quartz.properties")); 
     //scheduler.setDataSource(dataSource); 
     //scheduler.setAutoStartup(true); 
     scheduler.setWaitForJobsToCompleteOnShutdown(true); 
     return scheduler; 
    } 

} 

我quartz.properties:

org.quartz.jobStore.class=org.quartz.impl.jdbcjobstore.JobStoreTX 
org.quartz.jobStore.driverDelegateClass=org.quartz.impl.jdbcjobstore.oracle.OracleDelegate 
org.quartz.jobStore.useProperties=false 
org.quartz.jobStore.dataSource=myDS 
org.quartz.dataSource.myDS.driver =oracle.jdbc.OracleDriver 
org.quartz.dataSource.myDS.URL = jdbc:oracle:thin:@example:1521:db 
org.quartz.dataSource.myDS.user = user 
org.quartz.dataSource.myDS.password = password 
org.quartz.dataSource.myDS.maxConnections = 5 
org.quartz.dataSource.myDS.validationQuery = select 1 from dual 
org.quartz.jobStore.isClustered=false 
org.quartz.jobStore.tablePrefix = DPPA.QUARTZ_ 
org.quartz.threadPool.threadCount=1 
org.quartz.scheduler.skipUpdateCheck=true 
org.quartz.plugin.jobHistory.class=id.co.fifgroup.dpa.batch.BatchHistoryListener 

我想沒有任何quartz.properties創建SchedulerFactoryBean來,因爲我的客戶不希望更改任何數據庫連接在戰爭裏面。

是否有可能創建沒有任何quartz.properties的schedulerFactoryBean?

回答

1

你可以用這種方式配置它沒有屬性文件;

Properties p = new Properties(); 
p.put("org.quartz.scheduler.instanceName", "Scheduler_test"); 
p.put("org.quartz.threadPool.threadCount", 2); 
... 
StdSchedulerFactory factory = new StdSchedulerFactory(p); 
+0

通過這樣做'Properties p = new Properties();''和scheduler.setQuartzProperties(p);' – ismailzakky