- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在尝试为我的 Quartz Scheduler 应用程序配置 JDBC 作业存储。我已经创建了表并在 application.proprties 中提供了配置。但默认 RAM 作业存储正在初始化。
我应该如何配置quartz调度程序来使用JDBC jobstore。
应用程序属性
## Spring DATASOURCE (DataSourceAutoConfiguration & DataSourceProperties)
spring.datasource.platform=org.hibernate.dialect.MySQL5Dialect
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url = jdbc:mysql://localhost:3306/quartz_tables
spring.datasource.username = root
spring.datasource.password = root
spring.jpa.open-in-view=false
spring.jpa.show-sql=true
##Hibernate Properties
spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.MYSQL5InnoDBDialect
spring.jpa.hibernate.ddl-auto= update
## QuartzProperties
spring.quartz.job-store-type = jdbc
spring.quartz.jdbc.initialize-schema=never
spring.quartz.jdbc.schema= classpath:org/quartz/impl/jdbcjobstore/tables_mysql_innodb.sql.class = com.helix.quartz.demo.component.CustomerQuartzInstanceIdGenerator
spring.quartz.properties.org.quartz.threadPool.threadCount = 30
spring.quartz.properties.org.quartz.jobStore.class = org.quartz.impl.jdbcjobstore.JobStoreTX
spring.quartz.properties.org.quartz.jobStore.driverDelegateClass = org.quartz.impl.jdbcjobstore.StdJDBCDelegate
spring.quartz.properties.org.quartz.jobStore.useProperties = true
spring.quartz.properties.org.quartz.jobStore.misfireThreshold = 60000
spring.quartz.properties.org.quartz.jobStore.tablePrefix = qrtz
spring.quartz.properties.org.quartz.jobStore.isClustered = true
spring.quartz.properties.org.quartz.plugin.shutdownHook.class = org.quartz.plugins.management.ShutdownHookPlugin
spring.quartz.properties.org.quartz.plugin.shutdownHook.cleanShutdown = TRUE
我收到以下错误:
2019-06-14 13:35:45.847 INFO 13768 --- [ restartedMain] org.quartz.core.QuartzScheduler : Scheduler quartzScheduler_$_NON_CLUSTERED shutting down.
2019-06-14 13:35:45.847 INFO 13768 --- [ restartedMain] org.quartz.core.QuartzScheduler : Scheduler quartzScheduler_$_NON_CLUSTERED paused.
2019-06-14 13:35:45.859 WARN 13768 --- [ restartedMain] org.quartz.impl.jdbcjobstore.JobStoreTX : Database connection shutdown unsuccessful.
java.sql.SQLException: There is no DataSource named 'null'
at org.quartz.utils.DBConnectionManager.shutdown(DBConnectionManager.java:135) ~[quartz-2.3.0.jar:na]
at org.quartz.impl.jdbcjobstore.JobStoreSupport.shutdown(JobStoreSupport.java:746) ~[quartz-2.3.0.jar:na]
at org.quartz.core.QuartzScheduler.shutdown(QuartzScheduler.java:732) [quartz-2.3.0.jar:na]
at org.quartz.impl.StdSchedulerFactory.shutdownFromInstantiateException(StdSchedulerFactory.java:1411) [quartz-2.3.0.jar:na]
at org.quartz.impl.StdSchedulerFactory.instantiate(StdSchedulerFactory.java:1379) [quartz-2.3.0.jar:na]
at org.quartz.impl.StdSchedulerFactory.getScheduler(StdSchedulerFactory.java:1559) [quartz-2.3.0.jar:na]
at org.springframework.scheduling.quartz.SchedulerFactoryBean.createScheduler(SchedulerFactoryBean.java:650) [spring-context-support-5.0.7.RELEASE.jar:5.0.7.RELEASE]
at org.springframework.scheduling.quartz.SchedulerFactoryBean.prepareScheduler(SchedulerFactoryBean.java:590) [spring-context-support-5.0.7.RELEASE.jar:5.0.7.RELEASE]
at org.springframework.scheduling.quartz.SchedulerFactoryBean.afterPropertiesSet(SchedulerFactoryBean.java:490) [spring-context-support-5.0.7.RELEASE.jar:5.0.7.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1767) [spring-beans-5.0.7.RELEASE.jar:5.0.7.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1704) [spring-beans-5.0.7.RELEASE.jar:5.0.7.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:581) [spring-beans-5.0.7.RELEASE.jar:5.0.7.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:503) [spring-beans-5.0.7.RELEASE.jar:5.0.7.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:317) [spring-beans-5.0.7.RELEASE.jar:5.0.7.RELEASE]
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222) ~[spring-beans-5.0.7.RELEASE.jar:5.0.7.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:315) [spring-beans-5.0.7.RELEASE.jar:5.0.7.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199) [spring-beans-5.0.7.RELEASE.jar:5.0.7.RELEASE]
at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:251) ~[spring-beans-5.0.7.RELEASE.jar:5.0.7.RELEASE]
at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1138) ~[spring-beans-5.0.7.RELEASE.jar:5.0.7.RELEASE]
at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1065) ~[spring-beans-5.0.7.RELEASE.jar:5.0.7.RELEASE]
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:584) ~[spring-beans-5.0.7.RELEASE.jar:5.0.7.RELEASE]
at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:91) ~[spring-beans-5.0.7.RELEASE.jar:5.0.7.RELEASE]
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:373) ~[spring-beans-5.0.7.RELEASE.jar:5.0.7.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1350) [spring-beans-5.0.7.RELEASE.jar:5.0.7.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:580) [spring-beans-5.0.7.RELEASE.jar:5.0.7.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:503) [spring-beans-5.0.7.RELEASE.jar:5.0.7.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:317) [spring-beans-5.0.7.RELEASE.jar:5.0.7.RELEASE]
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222) ~[spring-beans-5.0.7.RELEASE.jar:5.0.7.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:315) [spring-beans-5.0.7.RELEASE.jar:5.0.7.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199) [spring-beans-5.0.7.RELEASE.jar:5.0.7.RELEASE]
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:760) ~[spring-beans-5.0.7.RELEASE.jar:5.0.7.RELEASE]
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:869) ~[spring-context-5.0.7.RELEASE.jar:5.0.7.RELEASE]
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:550) ~[spring-context-5.0.7.RELEASE.jar:5.0.7.RELEASE]
at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:140) ~[spring-boot-2.0.3.RELEASE.jar:2.0.3.RELEASE]
at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:759) ~[spring-boot-2.0.3.RELEASE.jar:2.0.3.RELEASE]
at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:395) ~[spring-boot-2.0.3.RELEASE.jar:2.0.3.RELEASE]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:327) ~[spring-boot-2.0.3.RELEASE.jar:2.0.3.RELEASE]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1255) ~[spring-boot-2.0.3.RELEASE.jar:2.0.3.RELEASE]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1243) ~[spring-boot-2.0.3.RELEASE.jar:2.0.3.RELEASE]
at com.automation.BellIamApplication.main(BellIamApplication.java:10) ~[classes/:na]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_212]
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[na:1.8.0_212]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[na:1.8.0_212]
at java.lang.reflect.Method.invoke(Unknown Source) ~[na:1.8.0_212]
at org.springframework.boot.devtools.restart.RestartLauncher.run(RestartLauncher.java:49) ~[spring-boot-devtools-2.0.3.RELEASE.jar:2.0.3.RELEASE]
2019-06-14 13:35:45.859 INFO 13768 --- [ restartedMain] org.quartz.core.QuartzScheduler : Scheduler quartzScheduler_$_NON_CLUSTERED shutdown complete.
最佳答案
现在一切正常。
我必须在我的 application.properties 文件中提及这些配置。
## Spring DATASOURCE (DataSourceAutoConfiguration & DataSourceProperties)
spring.quartz.properties.org.quartz.dataSource.myDS.driver = com.mysql.jdbc.Driver
spring.quartz.properties.org.quartz.dataSource.myDS.URL = jdbc:mysql://localhost:3306/quartz_tables
spring.quartz.properties.org.quartz.dataSource.myDS.user = root
spring.quartz.properties.org.quartz.dataSource.myDS.password = root
spring.quartz.properties.org.quartz.dataSource.myDS.maxConnections = 5
## QuartzProperties
spring.quartz.properties.org.quartz.threadPool.threadCount = 30
spring.quartz.properties.org.quartz.jobStore.class = org.quartz.impl.jdbcjobstore.JobStoreTX
spring.quartz.properties.org.quartz.jobStore.driverDelegateClass = org.quartz.impl.jdbcjobstore.StdJDBCDelegate
spring.quartz.properties.org.quartz.jobStore.dataSource = myDS
关于java - 如何在 Quartz Scheduler 中使用 JDBC jobstore,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56588000/
有没有支持quartz集群的redis jobStore? 有没有人能够构建它? 另一方面,什么是 quartz 簇?我的意思是,它是否能够让两个服务运行指向 redis 的相同 quartz.pro
嗯,我是 Quartz 的新手,我正在关注 this tutorial 并且我配置了我的调度程序实例和 quartz 以使用此属性: properties["quartz.jobStore.lockH
我正在使用 quartz 2.2.1 和 mysql 进行作业存储,为了创建新作业,它会用旧作业数据覆盖 mysql 表中的表内容。没有错误。 这是我的代码: import org.quartz.Sc
考虑这段小代码 from apscheduler.scheduler import Scheduler import time class First(): def __init__(self
我们在集群环境中使用 quartz 调度程序(集群中的两个节点,指向单个 Oracle 数据库)。目前我们有两个作业,几乎每一个小时运行一次。 我们有一个单独的数据库架构用于 quartz 作业。我们
我正在使用 Spring Framework 在 Oracle DB 上实现 Quartz Job Store。我的 ApplicationContext.xml 在下面
我正在使用这个hazelcast quartz scheduler JobStore用于调度后台作业。我正在使用: quartz :2.2.3 Hazelcast:3.7.2(使用默认配置在 Dock
当向调度程序添加或删除作业时,Quartz 偶尔会抛出 JobPersistenceException(在前面的 SQLiteException 之后)。 看起来值得注意的事情: Quartz.NET
我正在 Spring 中使用 JDBC JobStore 实现 Quartz 调度程序。我有一个用例,如果我的应用程序崩溃,并且它有作业要在调度程序崩溃和重新启动之间的时间范围内执行。我的方法是在调度
我希望你们中的一个可爱的人能够帮助我解决这个问题,因为我已经花费了许多徒劳的时间试图让一切都变得美好! 我已经将问题追溯到类加载,并且能够看到当 Quartz 尝试从 jobStore (jobSto
我有工作人员使用 APScheduler 执行任务。它第一天运行完美,然后在尝试获取下一个作业时崩溃了。在出现此类异常后我可以做一些重试吗?或者更好地防止这种情况发生? 这是调度程序代码: __jbs
我第一次存储作业并使用 crontrigger 和以下代码安排它们。 package com.generalsentiment.test.quartz; import static org.quart
我正在尝试为我的 Quartz Scheduler 应用程序配置 JDBC 作业存储。我已经创建了表并在 application.proprties 中提供了配置。但默认 RAM 作业存储正在初始化。
我在集群模式下使用 Quartz 由于过度调用,我在 DB 级别存在一些行锁争用: org.quartz.jobStore.selectWithLockSQL "SELECT * FROM QRTZ_
我想在运行相同作业的触发器之间保留重试计数数据。 我尝试将其存储到 JobExectionContext.JobDetails.JobDataMap 中,这是一个 DirtyHashMap。它被存储,
我正在使用 Flask Sqlalchemy,并在启动调度程序时将 mysql 作为作业存储。但有时当我将作业添加到调度程序时,它会抛出“Mysql Server has gone away”错误,可
我正在使用带有 quartz 的 JDBC 作业存储,因为在集群环境中管理作业。以下是我使用 mysql 的 jdbc 配置: #===============================
我目前正在将 Quartz 升级到版本 2.2。因此,我必须对 JDBCJobstore 使用的表进行一些迁移。 对于表“qrtz_fired_triggers”,添加了具有非空约束的“sched_t
我正在尝试 Quartz 调度程序,并设法使用 Maven 让它与 Spring 一起工作。 我需要做的是配置 Quartz 来存储作业,以便在预定的时间内执行作业。据我所知,Quartz 中有两种类
我有一个使用 flask.ext.sqlalchemy 和 apscheduler.schedulers.background 的 Python Flask 应用程序。我创建了一个 JobStore
我是一名优秀的程序员,十分优秀!