如何在石英时间表中设置dataSource。 [错误] org.quartz.SchedulerException:无法初始化数据源:myDS

时间:2019-05-16 11:25:06

标签: java spring-boot spring-mvc spring-data-jpa quartz-scheduler

这是我的配置文件quartz.properties

org.quartz.scheduler.instanceName= LivingOrdering
org.quartz.scheduler.instanceId=99199
org.quartz.scheduler.rmi.export=false
org.quartz.scheduler.rmi.proxy=false
org.quartz.threadPool.class=org.quartz.simpl.SimpleThreadPool
org.quartz.threadPool.threadCount=3
org.quartz.context.key.QuartzTopic=QuartzPorperties
org.quartz.jobStore.class=org.quartz.impl.jdbcjobstore.JobStoreTX
org.quartz.jobStore.driverDelegateClass=org.quartz.impl.jdbcjobstore.StdJDBCDelegate
org.quartz.jobStore.tablePrefix=qrtz_
org.quartz.jobStore.dataSource=quartzDataSource
org.quartz.dataSource.quartzDataSource.driver=org.postgresql.Driver
org.quartz.dataSource.quartzDataSource.URL=jdbc:postgresql://localhost:5432/quartz
org.quartz.dataSource.quartzDataSource.user=admin
org.quartz.dataSource.quartzDataSource.password=admin
org.quartz.dataSource.quartzDataSource.maxConnections=300

我在一行中遇到错误-

Scheduler scheduler = new StdSchedulerFactory().getScheduler();
Error: org.quartz.SchedulerException: Could not initialize DataSource: quartzDataSource

1 个答案:

答案 0 :(得分:1)

SpringBoot具有Quartz自动配置功能,您不需要使用quartz.properties来配置Quartz,因为它对Spring一无所知,因此您不能仅在其中放置数据源名称。阅读the documentation

开始使用Quartz所需要做的就是在您的pom.xml中包含启动器:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-quartz</artifactId>
</dependency>

配置标准Spring数据源(application.properties):

spring.datasource.url = jdbc:postgresql://localhost:5432/quartz
spring.datasource.username = admin
spring.datasource.password = admin

然后添加(在application.properties中):

spring.quartz.job-store-type=jdbc
# Add the below line to have Spring Boot auto create the Quartz tables
spring.quartz.jdbc.initialize-schema=always

如果您想将其他属性传递给Quartz,则可以使用spring.quartz.properties作为属性名称的前缀,如下所示:

spring.quartz.properties.org.quartz.scheduler.instanceName=LivingOrdering