Quartz 报错,改用Spring task

Spring Quartz 实现多任务定时调用 Spring Quartz 实现多任务定时调用。简单说起来,就是让 Quartz 在指定的时间去帮助我们做指定的业务,达到任务调度与任务定时的目的。 阅读详情

项目之前用spring 3.0.6,quartz1.8.5,在tomcat下undeploy应用时,报错:

严重: The web application [/ROOT] appears to have started a thread named [genera
teSmsDataBean_Worker-10] but has failed to stop it. This is very likely to creat
e a memory leak.


上stackoverflow查了,有人提到一种解决办法

http://stackoverflow.com/questions/1827212/registering-a-shutdown-hook-in-spring-2-5


我没有试这种办法,因为我跟踪spring 的SchedulerFactoryBean 的destory方法,在redeploy应用时是有调用的。


后来又看到一篇文章:

http://forums.terracotta.org/forums/posts/list/3479.page

提到可能是tomcat的bug,要在SchedulerFactoryBean 的destory里面的shutdown方法后,加上sleep(1000)。


我比较懒,不想改源码,也不想复写一个factory。继续找办法解决。。。


网上有人说quartz2.0修复了这个问题,我查了spring的文档说,spring3.1.2支持quartz2.X了,于是很高兴的升级了。

结果按照spring的官方文档

http://static.springsource.org/spring/docs/3.1.2.RELEASE/spring-framework-reference/html/scheduling.html

里的配置,报错:


java.lang.IncompatibleClassChangeError: class org.springframework.scheduling.quartz.CronTriggerBean has interface org.quartz.CronTrigger as super class


这是因为quartz2把CronTrigger改成接口了,而spring里CronTriggerBean还把它当成一个基类。

看来spring的文档也很忽悠人啊。


再仔细看刚刚那个spring的文档,原来spring自己已经提供了 Task Execution and Scheduling 的支持。难怪对第三方的支持这么不给力了。

果断使用spring原生态支持,配置很简单:

<task:scheduled-tasks> 
        <task:scheduled ref="smsService" method="generateSmsData" cron="0 0/30 * * * ?" /> 
</task:scheduled-tasks> 

在xml前加上task的命名空间:

xmlns:task="http://www.springframework.org/schema/task"
xsi:schemaLocation="
http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-3.1.xsd
“


问题解决。



SpringBoot系列之使用Spring Task实现定时任务 SpringBoot系列之使用Spring Task实现定时任务1、前言介绍 1、前言介绍 定时任务是企业开发中很常用的,比如定时推送一些接口数据,在java中实现定时任务的方法有Spring Task、Quartz等等框架,也有JDK自带的ScheduledExecutorService、Timer Quartz框架比较复杂,之前我写过一个入门教程,读者可以参考学习:Quartz系列之任务调度框架原理简介 Spring Task是Spring3.0以后自带的task,可以将它看成一个轻量级的Quartz, 阅读详情

相关推荐

FPGA之道(22)VHDL基本程序框架

在介绍详细的VHDL语法之前,让我们先来了解一下VHDL代码的基本程序框架,这样可以让我们先对VHDL程序设计有一个整体的概念把握,进而在后续的VHDL语法学习中做到有的放矢。

Reborn Lee 8308

Quartz因不同版本导致的异常

学习Quartz,因为使用了quartz-all-1.8.5.jar的jar,但是文档是1.6版本的,导致出现几次莫名奇妙的错,都是因为不同版本中使用到都类不一样 当我使用下面配置都时候: <bean id="jobtask" class="org.springframework.beans.factory.config.MethodInvokingFactoryBean">

7200

UVM自学笔记3——项目之三——从零开始搭建ahb_sramc验证平台

创建如下所示的目录结构: 2.在tb的文件下:顶层的testbench如下:在tb中,第24行的代码将uvm宏相关的内容include进来,第26行的代码把uvm_pkg包导入进来,然后将agent相关的包(ahb_pkg/sram_pkg),testcase相关的包(uvm_ahb_sram_test_pkg)以及env相关的包(uvm_ahb_sram_env_pkg)都导入进来,在第38行和39行将接口以virtual interface的形式配置给ahb_agent和sramc_agent下

ZhangShuHuai11的博客 9474

quartz java jar_quartz---java计划任务 quartz-all-1.8.5.jar

Quartz是一个功能强大的java计划任务系统,它通过简单的配置和代码完成各种计划人数,定时单机应用到分布式的计算机间远程任务调度,都可以做到。 quartz是一个按照设定的时间规则来调度作业的调度器,比如可以设定每30s启动一个Job,但如果Job在30s内还未完成,那么quartz默认情况下还是按照设定的周期启动新的Job线程 今天刚看了一点资料,做一下笔记。 ...

weixin_34363294的博客 368

逆变器专题(3)-锁相环-PLL

锁相环作为并网逆变器的第一道门户,其锁相的精度将直接影响逆变器是否并网成功,若锁相精度较差,则会直接导致系统的功率因数下降,产生无功等等。在有关文献中指出,提高PLL带宽可以准确且快速进行锁相,而当电网电压含有谐波时,可适当降低带宽抵制谐波的干扰。成为变化量,而如果两者旋转速度达到一致时,所在的交轴分量。ki很大,即带宽很大时,稳定裕度不够,锁相环锁不住。为交流量,当频率锁定而相位没有锁定时,即。,即控制环前馈,可实现将锁相速度的加快。控为0,则可实现系统完美锁相。mod,取余,可减少存储空间。

cyc19980105的博客 6181

东方财富网股票API逆向分析:手把手教你破解动态参数(2024最新版)

本文详细解析了2024年东方财富网股票API的动态参数生成机制,包括回调函数、身份验证和时效控制参数的逆向工程方法。通过实战代码演示,帮助开发者破解动态参数,实现高效稳定的股票数据爬取,适用于金融数据分析和量化交易场景。

weixin_29091105的博客 1025

spring定时器quartz版本问题

如果quartz的版本是1.8.5启动会报错,修改给2.0版本以上即可 <dependency> <groupId>org.quartz-scheduler</groupId> <artifactId>quartz</artifactId> <version>2.2.0</version> <...

weixin_30443075的博客 182

泛微E9集成登录实战:5分钟搞定第三方系统单点登录配置(附避坑指南)

本文详细解析了泛微E9集成登录的实战配置流程与核心原理。通过理解其基于信任代理的身份传递机制,文章指导用户如何在5-10分钟内完成第三方系统的单点登录对接,涵盖基础配置、核心参数设置、高级表达式应用,并提供了编码问题、账号不一致等常见避坑指南,助力企业快速构建统一身份认证门户。

weixin_29185493的博客 289

使用quartz遇到的两个异常

异常: Caused by: java.lang.NoClassDefFoundError: org/springframework/transaction/TransactionException at java.lang.Class.getDeclaredConstructors0(Native Method) at java.lang.Class.privateGetDe

Jalen备忘录 1956

STC8单片机低功耗延时优化实践:从循环等待到定时唤醒

本文深入探讨了STC8单片机低功耗延时优化的核心方法,即利用掉电唤醒定时器(WKT)替代传统的循环等待,实现从“空转耗电”到“定时唤醒”的转变。通过实战代码演示了如何编写低功耗延时函数,将待机电流从mA级降至μA级,并分析了精度、唤醒时间等关键权衡点,为电池供电的物联网设备提供了有效的续航优化方案。

pea55的博客 324

MATLAB基础应用精讲-【图像处理】GNN图神经网络(附python代码实现)

图神经网络由于其在处理非欧空间数据和复杂特征方面的优势,受到广泛关注并应用于推荐系统、知识图谱、交通道路分析等场景。图结构可描述复杂关系,如基因结构、通信网络、交通路线、社交网络等。图计算挖掘结构信息,但无法学习节点特征。神经网络在欧氏空间数据上表现优越,但无法直接应用于非欧氏空间的图数据。图神经网络结合图计算和神经网络优势,处理非欧氏空间数据及其复杂特征,应用于网络链接预测、推荐系统和交通道路分析等场景。实际应用中,图数据规模庞大,如百亿级节点、千亿级边,存储开销超过10TB。

qq_36130719的博客 1139

quartzScheduler_Worker-1] but has failed to stop it. This is very likely to create a memory leak解决

出现此问题是由一于spring 启动了quartz,而当tomcat 关闭的时候而没有关闭造成的。 在web 加一个监听器当关系的时候判断作业是否启动,启动就关闭。      cn.test.job.JobListener       public class JobListener implements ServletContextListener {  public voi

billhepeng的专栏 4万+

一层一责,一聚合一包:DDD分层架构下的微服务代码模型、三重边界与服务数据协作

领域模型画得再清楚,落不进代码也是空谈。本文以一个可运行的客户中心微服务为线索,先对比整洁架构、六边形架构与DDD分层架构,指出三者共同守护的那条隔离核心业务的红线;再把DDD分层落成四个一级目录、以聚合为单位分包、一个聚合一个仓储的代码模型,拆解实体、聚合根、值对象、领域事件、领域服务与仓储的设计要点;随后厘清逻辑、物理、代码三重边界,并用检查器实测:干净代码零越界,拆出积分聚合时领域代码无需改动;注入九处越界后,必须先重构才能拆分。最后梳理服务调用三场景与PO、DO、DTO、VO的协作。

曾经“等你生日那天”都遥远得像未来,如今却可欢愉的挥手说“下个十年见” 177万+

两种方式部署定时任务Spring整合Quartz、Spring整合Task(java后台)

####(Notice:以下所有经验也是我根据网上的经验整理的,如有侵权可以联系我删除,欢迎交流和沟通,Wx:IT_Ezra,QQ 654303408。 有问题讨论也可联系我。) ####(Tips:我是第一次开发,一个刚毕业的java工程师,我觉得我并非天赋异禀,我能学会,相信聪敏的你,一定可以) (PS:定时任务是一个非常常见的功能,在我们进行系统开发中,经常会用到,有点类似于OS中的批处理。...

IT_EZRA的博客 542

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

Quartz入门及触发器与Trigger的介绍&&Spring task Vs Quartz的比较

转载请标明出处:https://blog.csdn.net/men_ma/article/details/106847165. 本文出自 不怕报错 就怕不报错的小猿猿 的博客 Quartz入门及触发器与Trigger的介绍&&Spring task Vs Quartz的比较目标1.Quartz简介及应用场景1. 1 Quartz介绍1.2 Quartz的触发器1.3. 存储方式2.Quartz简单触发器 SimpleTrigger介绍3.Quartz表达式触发器CronTirg.

men_ma的博客 783

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

Spring Boot Quartz 使用介绍

&nbsp; &nbsp; &nbsp; &nbsp;Quartz是用来实现定时任务的一个框架。如果光说定时任务你可能会说@scheduled也能实现呀。还要Quartz干啥。因为Quartz的功能比@scheduled稍微多一点。主要体现在以下几个方面 Quart的定时任务可以随时修改。即使任务已经在调度系统中了。你还是可以随时去改变任务的实行时间(@scheduled实现该功能就比较麻烦了...

旧路 4869

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

spring3+quartz1集群配置、分布式集群配置

spring3+quartz1集群配置、分布式集群配置spring3quartz1集群配置分布式集群配置解决方案 建表语句 tables_mysql_innodbsql 定义一个任务 webxml quartzproperty MyDetailQuartzJobBean quartzxml 测试解决方案 把 QUARTZ 的 TASK 实例化进数据库, QUARTZ 只有实例化进入数据库后才能做集群

quguang65265的博客 1535

spring3使用task注记及task:annotation-driven解决定时问题

转载自:http://blog.csdn.net/guoquanyou/article/details/6756437 最近发现真的凹凸了,Spring升级到3后原来已经自带任务调度器了,之前还一直使用着Quartz。其实也不是Quartz不好,只是相比之下,使用Spring task真的简单很多,无论是理解还是使用。   Spring Task提供两种方式进行配置,正如大家所想

a1124544556的博客 1万+

spring Task定时任务学习笔记

1.定时任务 :每个月定时清除日志 广告的轮播 2.3种定时任务 a、Java自带的API Java.util.Timer Java.util.TimerTask (这类相对用的较少) b、Qurztz框架 开源的功能强大按某个频度或时间运行 使用稍显复杂 (用的较多) c、spring 3.0以后自带课task调度工具 比Qurztz更加的方便 功能也非常强大 不需添加额外jar包 如何使用 主...

Qulishas的博客 340

springboot 2.x 集成quartz持久化到一个单独的dataSource时遇到的坑

由于希望可以在集群环境中运行定时job,但考虑到多个job实例有可能带来job重复执行的问题,新项目的job打算从原生的spring task实现改成quartz job实现,并采用jdbc的存储方式。 如果是把quartz的表初始化到原先springboot配置的同一个数据库,并没有太多问题,但考虑到这样做会在业务表中插入很多不相关的表,决定把quartz的表建在单独的一个库中。查了...

weixin_30612769的博客 4214

java task 定时任务_[java]spring-task定时任务

前面两篇博客讲解了Quartz来实现定时任务,不过spring3以后,自己封装了spring的task来实现定时任务,配置起来不要太简单,用起来真的很方便,下面咱们来一起实现一下这个taskspring-task简介spring task,可以将它比作一个轻量级的Quartz,使用起来很简单,不过形式没有quartz多样,除spring相关的包外不需要额外的包,而且支持注解和配置文件两种形式。sp...

weixin_39939510的博客 192

quartz 分布式_Spring Boot Quartz 分布式集群任务调度实

出处:http://t.cn/Aipwjjj4主要内容Spring Scheduler 框架Quartz 框架,功能强大,配置灵活Quartz 集群mysql 持久化定时任务脚本(tables_mysql.sql)介绍在工程中时常会遇到一些需求,例如定时刷新一下配置、隔一段时间检查下网络状态并发送邮件等诸如此类的定时任务。定时任务本质就...

weixin_39714164的博客 238

spring定时器与quartz定时器

工作中使用到了定时器任务 采用的是quartz 无意中发现spring原来也有定时器 记录一下 以便以后查阅 1.首先在spring的xml中配置 xmlns:task="http://www.springframework.org/schema/task" http://www.springframework.org/schema/task http://www.springframewo

qq_16053163的博客 453

spring quartz问题 没有执行为什么啊

applicationContext.xml 配置文件如下: [code="xml"] update ...

iteye_7387的博客 688

Quartz + spring 定时任务常见错误总结

Quartz + spring 定时任务常见错误总结

tyuuhgf的博客 566

解决quartz 定时任务报错问题

定时任务运行提示: java.lang.ClassCastException: bdhj.modules.job.entity.ScheduleJobEntity cannot be cast to bdhj.modules.job.entity.ScheduleJobEntity at bdhj.modules.job.utils.ScheduleJob.executeInterna...

JUNY_JAVA的博客 1万+
上一篇: apache 和 tomcat 的整合 备忘
下一篇: hudson自动构建时 undeploy tomcat 报错
yanjunlu
博客等级 码龄22年 9粉丝 17原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值