`
wx1569578408
  • 浏览: 71581 次
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

spring quartz 常见的"Table 'database.qrtz_locks' d...

 
阅读更多

spring quartz 常见的"Table 'database.qrtz_locks' doesn't exist异常"

原因:出现此异常,通常是因为spring配了 <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd" default-autowire="byName" >

原理: <bean id="scheduler" lazy-init="false" class="org.springframework.scheduling.quartz.SchedulerFactoryBean"> 此bean会试图访问数据库获取quartz的一些管理表信息,自然访问数据库时需要注入dataSource bean,当缺省autowire为no,则没有dataSource bean被注入,quartz会认为项目没连数据库,会BYPASS这个访问管理表的功能. 当你配置了default-autowire=byName时,dataSource bean被自动注入,这时quartz认为项目既然能连到数据库,就想当然的认为对应的那些表一定存在,没找到时就出异常.

解决办法:

1.去掉default-autowire=byName即可 此法简单,但往往很难决定,因为缺省,谁也不会傻乎乎的显示配这么一条,配了它一定是有用到它的地方.你愿不愿意牺牲这部分byName注入的功能?

2.在库中建对应的表 此法不可取,因为非常麻烦,要建很多表 CREATE TABLE QRTZ_LOCKS CREATE TABLE QRTZ_JOB_DETAILS CREATE TABLE QRTZ_TRIGGERS CREATE TABLE QRTZ_FIRED_TRIGGERS CREATE TABLE QRTZ_JOB_LISTENERS 少一张,spring都报异常, 这是为大型调度功能准备的.你要有上百个任务,可能需要它.

3.bean里直接关掉autowired 推荐此法 <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd" default-autowire=byName >

<bean id="scheduler" lazy-init="false" autowire="no" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">

转载于:https://my.oschina.net/u/225084/blog/161044

分享到:
评论

相关推荐

    quartz 持久化数据库表

    使用Quartz持久化功能时,还需要配置Scheduler的属性,如数据源、表前缀等,这通常在`quartz.properties`配置文件中进行。正确配置后,Quartz会在启动时自动将任务信息写入数据库,同时在系统重启后能从数据库中恢复...

    qrtz_blob_triggers.sql

    quartz-2.2.3版本集群部署方式,需要创建的11张表的sql 文件,很多文章没有分享,一定要注意版本,不同的版本sql脚本不同

    quartz 持久化数据库表结构sql

    CREATE TABLE QRTZ_JOB_DETAILS ( SCHED_NAME VARCHAR(120) NOT NULL, JOB_NAME VARCHAR(200) NOT NULL, JOB_GROUP VARCHAR(200) NOT NULL, DESCRIPTION VARCHAR(250) DEFAULT NULL, JOB_CLASS_NAME VARCHAR...

    quartz-2.3.0数据库表SQL.zip

    - 主要的Quartz数据库表包括`QRTZ_JOB_DETAILS`, `QRTZ_TRIGGERS`, `QRTZ_CRON_TRIGGERS`, `QRTZ_SIMPLE_TRIGGERS`, `QRTZ_BLOB_TRIGGERS`, `QRTZ_CALENDARS`, `QRTZ_PAUSED_TRIGGER_GRPS`, `QRTZ_FIRED_TRIGGERS`,...

    spring-timer-quartz.zip_namegnd_spring定时任务

    &lt;bean id="scheduler" class="org.springframework.scheduling.quartz.SchedulerFactoryBean"&gt; &lt;property name="configLocation" value="classpath:quartz.properties"/&gt; ``` 在`quartz.properties`中,我们...

    Quartz定时任务持久化数据表

    在提供的"quartz.sql"文件中,很可能是包含了Quartz框架所需的数据库表结构和初始化数据。这些表通常包括以下几部分: 1. `QRTZ_JOB_DETAILS`:这个表存储了作业的详细信息,如作业类名、作业组名、描述等。每个...

    irm.rar_IRM_quartz-1.5.1.j_北向接口

    【irm.rar_IRM_quartz-1.5.1.j_北向接口】这个标题暗示了我们正在处理一个关于远程接口管理(IRM)的项目,其中使用了quartz-1.5.1.j版本的库,并且关注的是北向接口。在IT领域,"北向接口"通常指的是系统对外提供的...

    quartzDaoImp.rar_quartz_spring定时_定时器

    3. **定义作业类**:创建实现`org.quartz.Job`接口的类,定义作业的具体行为。在`execute(JobExecutionContext context)`方法中编写实际要执行的业务逻辑。 4. **声明作业**:在Spring配置文件中声明作业,使用`...

    Springboot整合quartz产生错误及解决方案

    在Spring Boot应用中整合Quartz作为任务调度框架是常见的需求,用于执行周期性的后台任务。然而,在实际操作中,可能会遇到一些错误,如"ObjectAlreadyExistsException",这通常是由于Quartz在尝试创建已存在的Job时...

    Quartz定时任务常用的11张数据库脚本表结构

    Quartz是一款广泛使用的开源任务调度框架,它允许开发者在Java应用程序中定义和执行定时任务。在Quartz中,任务和触发器的配置信息是通过数据库存储的,这使得任务调度具有高可用性和可扩展性。这里我们将详细探讨...

    quartz-3.0.3.1_quartes_源码.zip

    - **org.quartz.impl**:包含 Quartz 的实现类,如 `org.quartz.impl.StdSchedulerFactory` 用于创建 Scheduler 实例,`org.quartz.impl.jdbcjobstore` 包含了数据库存储相关的实现。 - **org.quartz.triggers**:...

    Quartz_API_1.65.zip_Quartz API_Quartz a_quartz 1.6.3 api_quartz

    Jobs是实际要执行的工作单元,它们实现了`org.quartz.Job`接口,并通过`execute()`方法来定义其执行逻辑。而Triggers则定义了何时以及如何触发这些Jobs。你可以设置触发器基于时间(如每分钟、每天特定时间)或事件...

    quartz job持久化

    实现把job持久化数据库,里面有...1.2 Quartz配置文件quartz.properties 4 1.3 创建job 6 1.3.1 实现org.quartz.Job接口 6 1.3.2 把以上job持久化到数据库中 6 1.4 启动job所需条件 6 1.4.1 在web.xml中加入如下监听 6

    spring-boot学习demo.zip_DEMO_SpringBoot_spring boot_spring-boot_sp

    SpringBoot学习Demo是一个针对初学者的入门项目,旨在帮助开发者快速理解并掌握Spring Boot的核心概念和用法。Spring Boot是Spring框架的一个模块,它简化了创建独立的、生产级别的基于Spring的应用程序的过程,通过...

    spring-batch-reference.rar_SpringBatch英文读物pdf_batch

    Spring Batch 是一个强大的开源批处理框架,主要用于处理大量数据,尤其在企业级应用中非常常见。这份名为“spring-batch-reference.pdf”的英文文档是Spring Batch的官方参考指南,对于深入理解该框架及其功能至关...

    基于quartz定时任务框架.rar

    你需要创建一个类实现`org.quartz.Job`接口,并重写`execute(JobExecutionContext context)`方法来定义你的任务逻辑。 2. **Trigger**:触发器定义了任务何时运行。Quartz提供了多种类型的Trigger,如SimpleTrigger...

    quartz-2.2.3版本的quartz初始化sql语句

    - 初始化SQL语句执行后,还需确保Quartz的配置文件(如`quartz.properties`)中的表名与创建的数据库表一致。 总之,Quartz 2.2.3的初始化SQL语句是搭建Quartz任务调度系统的重要环节,它们构建了存储任务调度数据...

    quartz-数据库建表语句.zip

    作业是实际执行的任务,可以是任何实现了`org.quartz.Job`接口的类。 3. **QRTZ_CRON_TRIGGERS**:对于使用Cron表达式来定义执行时间的触发器,它们的详细信息会被存储在这个表中,包括Cron表达式、时区等。 4. **...

    quartz-3.0.3.1_quartes_

    结合 Spring 框架,可以轻松地在 Spring 应用中集成 Quartz,实现灵活的定时任务管理。 总结来说,Quartz 是一个强大且灵活的作业调度框架,通过其丰富的特性,可以在各种应用场景下实现复杂的时间驱动任务调度。...

    quartz-job初始化数据表.zip

    10. **QRTZ_LOCKS**:用于实现并发控制和调度器内部同步的锁。 在初始化数据库之前,你需要根据你的数据库类型(如MySQL、Oracle、SQL Server等)对这些脚本进行适当的调整,例如更改表前缀、数据类型等。一旦...

Global site tag (gtag.js) - Google Analytics