Quartz任务监控管理

Quartz如何实现判断某个任务是否正在运行,在项目中用到的,已经测试过了 Quartz如何实现判断某个任务是否正在运行,在项目中用到的,已经测试过了,很好用,分享给大家 立即下载

http://sundoctor.iteye.com/blog/441951?page=3


Quartz任务监控管理,类似Windows任务管理器,可以获得运行时的实时监控,查看任务运行状态,动态增加任务,暂停、恢复、移除任务等。对于动态增加任务,可以参加我的前一篇文章《Quartz如何在Spring动态配置时间》,本文在前文的基础上扩展,增加暂停、恢复、移除任务等功能,实现Quartz任务监控管理。


先看一下最终实现实现效果,只有两个页面 ,如下

在这个页面查看任务实时运行状态,可以暂停、恢复、移除任务等


在这个页面可以动态配置调度任务。


实现任务监控,必须能将数据持久化,这里采用数据库方式,Quartz对任务的数据库持久化有着非常好的支持。我在这里采用quartz 2.2.1,在Quartz发行包的docs\dbTables目录包含有各种数据库对应脚本,我用的是H2,所以选用tables_h2.sql建表。


1.配置applicationContext.xml文件

Xml代码   收藏代码
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <beans xmlns="http://www.springframework.org/schema/beans"  
  3.     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
  4.     xmlns:aop="http://www.springframework.org/schema/aop"  
  5.     xmlns:tx="http://www.springframework.org/schema/tx"  
  6.     xmlns:context="http://www.springframework.org/schema/context"    
  7.     xmlns:jdbc="http://www.springframework.org/schema/jdbc"    
  8.     xsi:schemaLocation="  
  9.     http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd  
  10.     http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd  
  11.     http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd  
  12.    http://www.springframework.org/schema/jdbc http://www.springframework.org/schema/jdbc/spring-jdbc.xsd  
  13.     http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd  
  14.     " >  
  15.     
  16.    <context:component-scan base-package="com.sundoctor">  
  17.         <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"/>  
  18.     </context:component-scan>  
  19.   
  20.       
  21.     <!-- 使用H2内存数据库并创建quartz数据库表 -->  
  22.     <jdbc:embedded-database id="dataSource" type="H2">  
  23.         <jdbc:script location="classpath:db/tables_h2.sql"/>         
  24.     </jdbc:embedded-database>   
  25.       
  26.     <!--Hibernate SessionFatory-->  
  27.     <bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">  
  28.         <property name="dataSource" ref="dataSource"/>  
  29.         <property name="packagesToScan">  
  30.             <list>  
  31.                 <value>com.sundoctor.example.model</value>                
  32.             </list>  
  33.         </property>     
  34.         <property name="hibernateProperties">  
  35.             <props>  
  36.                 <prop key="hibernate.dialect">org.hibernate.dialect.H2Dialect</prop>  
  37.                 <prop key="hibernate.show_sql">true</prop>  
  38.                 <prop key="hibernate.format_sql">true</prop>                  
  39.                 <prop key="hibernate.hbm2ddl.auto">update</prop>          
  40.             </props>  
  41.         </property>  
  42.     </bean>     
  43.       
  44.     <!--Hibernate TransactionManager-->  
  45.     <bean id="transactionManager"  class="org.springframework.orm.hibernate4.HibernateTransactionManager">  
  46.         <property name="sessionFactory" ref="sessionFactory"/>  
  47.     </bean>         
  48.   
  49.     <!-- 使用annotation定义事务 -->  
  50.     <tx:annotation-driven transaction-manager="transactionManager" proxy-target-class="true" />         
  51.   
  52. </beans>  

 

配置Quartz,也分两步
1、配置quartz. properties

Java代码   收藏代码
  1. …  
  2. org.quartz.jobStore.misfireThreshold = 60000  
  3. #org.quartz.jobStore.class = org.quartz.simpl.RAMJobStore  
  4. org.quartz.jobStore.class = org.quartz.impl.jdbcjobstore.JobStoreTX  
  5. org.quartz.jobStore.driverDelegateClass=org.quartz.impl.jdbcjobstore.StdJDBCDelegate  
  6. #org.quartz.jobStore.useProperties = true  
  7. org.quartz.jobStore.tablePrefix = QRTZ_    
  8. org.quartz.jobStore.isClustered = false  org.quartz.jobStore.maxMisfiresToHandleAtATime=1  


在这里采用JobStoreTX,将任务持久化到数据中,而不再是简单的内存方式:RAMJobStore

2、配置applicationContext-quartz.xml

Xml代码   收藏代码
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <beans xmlns="http://www.springframework.org/schema/beans"  
  3.     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
  4.     xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">  
  5.   
  6.     <bean name="quartzScheduler" class="org.springframework.scheduling.quartz.SchedulerFactoryBean" >  
  7.         <property name="dataSource" ref ="dataSource" />         
  8.         <property name="applicationContextSchedulerContextKey" value="applicationContextKey"/>  
  9.         <property name="configLocation" value="classpath:quartz.properties"/>           
  10.     </bean>  
  11.       
  12.     <bean id="jobDetail" class="org.springframework.scheduling.quartz.JobDetailFactoryBean" >  
  13.         <property name="jobClass">  
  14.             <value>com.sundoctor.example.service.MyQuartzJobBean</value>  
  15.         </property>  
  16.        <property name="durability" value="true" />      
  17.     </bean>  
  18.        
  19. </beans>  

 

到些,相关配置全部完成,对于配置的具体描述,可以参加我的前一篇文章《Quartz如何在Spring动态配置时间》

实现任务动态添加配置

请参考com.sundoctor.quartz.service.SchedulerServiceImpl.java中的各种schedule方法,在《Quartz如何在Spring动态配置时间》有具体描述。在这里说一下:
添加一个Job在表qrtz_job_details插入一条记录
添加一个Simple Trigger在表qrtz_simple_triggers插入一条记录
添加一个Cron Trigger 在表qrtz_cron_triggers插入一条记录
添加Simple Trigger和Cron Trigger都会同进在表qrtz_triggers插入一条记录,开始看的第一个页面调度任务列表数据就是从qrtz_triggers表获取

实现任务实时监控,暂停、恢复、移除任务等
在com.sundoctor.quartz.service.SchedulerServiceImpl.java类中

暂停任务

Java代码   收藏代码
  1. @Override  
  2. public void pauseTrigger(String triggerName, String group) {  
  3.     try {  
  4.         scheduler.pauseTrigger(new TriggerKey(triggerName, group));// 停止触发器  
  5.     } catch (SchedulerException e) {  
  6.         throw new RuntimeException(e);  
  7.     }  
  8. }  

 

恢复任务

Java代码   收藏代码
  1. @Override  
  2. public void resumeTrigger(String triggerName, String group) {  
  3.     try {  
  4.         scheduler.resumeTrigger(new TriggerKey(triggerName, group));// 重启触发器  
  5.     } catch (SchedulerException e) {  
  6.         throw new RuntimeException(e);  
  7.     }  
  8. }  


移除任务

Java代码   收藏代码
  1. @Override  
  2. public boolean removeTrigdger(String triggerName, String group) {  
  3.     TriggerKey triggerKey = new TriggerKey(triggerName, group);  
  4.     try {  
  5.         scheduler.pauseTrigger(triggerKey);// 停止触发器  
  6.         return scheduler.unscheduleJob(triggerKey);// 移除触发器  
  7.     } catch (SchedulerException e) {  
  8.         throw new RuntimeException(e);  
  9.     }  
  10. }  



其它类的实现请参加《Quartz如何在Spring动态配置时间》,那里有具体说明。

到此,基本简单实现了Quartz任务监控管理。其实面这里只是实现了Trigger任务的监控管理,没有实现Job任务的监控管理,实现Job任务的监控管理跟Trigger差不多。用Quartz可以很方便实现多样化的任务监控管理,Trigger任务和Job任务都可进行分组管理。

Quartz很强大,也很简单,只有想不到的,没有做不到的,人有多大胆,地有多高产。

 

【feature_column处理】- indicator_column(指示列)和embedding_column(嵌入列) 1. 开胃菜 我们先来了解一下tf.feature_column.input_layer def input_layer(features, feature_columns, weight_collections=None, trainable=True, cols_to_vars=None, cols_to_output_tensors=None) 阅读详情

相关推荐

从时序参数到电压供给:TTL(RGB)液晶屏驱动调试全解析

本文全面解析TTL(RGB)液晶屏驱动调试的关键技术,从时序参数配置到电压供给系统搭建,详细介绍了同步信号参数、寄存器配置技巧以及升压电路设计。通过实战案例和常见故障分析,帮助工程师快速掌握液晶显示屏调试方法,提升开发效率。

weixin_30588675的博客 247

【Quartz】Quartz监听的详细介绍以及使用

Quartz监听器的详细实现

qq_22193961的博客 2145

svn 分支(branch)和标签(tag)管理

svn的分支管理

caohongxing的博客 3万+

Quartz+Spring 实现任务监控

Quartz是一个优秀的任务调度框架,完全基于Java实现,功能强大,易于集成,最近在写了一个小项目,算是对之前接触到的技术做一个总结吧,在这个项目中使用Quartz实现对任务的监控

想成为工程师的码农 1万+

突破Shopee平台数据采集的风控挑战与技术解决方案

高效、稳定、合规的数据采集能力,始终是我们服务的核心价值。多类型代理组合:采用高匿名住宅代理(模拟真实用户IP)与数据中心代理(高并发需求)混合策略,结合IP轮换频率与目标国家后缀(如.com.my、.vn)动态匹配14。反反爬数据过滤:针对Shopee页面中的混淆数据(如虚假价格标签、隐藏元素),采用XPath精准定位结合正则表达式清洗,确保数据准确性89。随机化请求间隔:在爬虫代码中引入随机延迟(如1-5秒),并模拟“浏览-点击-滚动”等用户行为链,降低行为模式的可预测性48。

klj3388的博客 2975

2.4G跳频算法 2.4G切信道算法 (简例示意nRF52832)

2.4G跳频算法 nRF52832示例 2.4G自适应信道算法

Peter.Min 954

定时任务监控(一)-Quartz

前言 为了方便对对公司的定时任务进行监控与管理,决定对定时任务服务进行改造升级,开发一个可视化的定时任务监控管理平台。由于公司定时任务是使用的是Quartz,所以我们首先对Quartz的监控管理平台进行了预研。 这里先说一下最后的结果,选用的是xxl-job替代Quartz。期间还预研了elastic-job,在多方对比之下选择了使用xxl-job替换Quartz。这样做的理由是 替换成本低,定时任务逻辑方法不用做任何代码更改 xxl-job提供自带的定时任务监控管理界面 对于elastic-job的分片

南城的博客 5174

使用Python爬虫抓取旅游景点评价数据并进行热度可视化

景点热度通常由景点的评分、评论数以及游客的热情度来决定。高热度的景点通常意味着更高的游客评分和更多的游客评论。热度不仅反映了景点的受欢迎程度,还可以揭示某些景点的潜力和存在的问题。评分:游客对景点的综合评分,通常是0到5分。评论数:景点的评论数量,反映了游客对景点的关注程度。热度变化:在一定时间内,景点的评价和评论数量变化,能够反映景点的热度波动。通过使用Python爬虫技术抓取旅游景点的评价和评论数据,我们能够深入分析景点的热度,并通过数据可视化工具将这些信息展示给用户。

2201_76125261的博客 1282

java监控定时任务_Quartz 定时任务使用 —— Web项目监听中调用(二)

在Web应用中使用QuartzQuartz也常用在Web应用中,常见的是交由Spring托管的形式,但这里并非介绍这个。这里介绍Quartz在Web应用中单独使用。一般来说,Web应用启动时,应注册已经确定的定时任务;一些动态的、未确定触发时间的定时任务,后续可通过静态的Scheduler注册。这里使用监听器在应用启动时注册,记得在web.xml注册这个监听器哦;在关闭Web应用时,也要相应的注销...

weixin_42394054的博客 2039

一文搞懂 JavaScript 模块化规范:CommonJS、AMD、ES6 Module

在现代 JavaScript 开发中,模块化是提升代码组织性和可维护性的关键。本文深入解析三种主流的模块化规范——CommonJS、AMD 和 ES6 Module。

Allen- 3476

Qt6.10 | Qt Bluetooth 蓝牙

本文介绍了QtBluetooth模块的功能和使用方法,包括蓝牙API概述、构建配置(CMake/qmake)、权限管理、平台支持(Linux/macOS特殊处理)、日志设置及许可信息。重点说明Linux平台的后端选择机制,以及macOS上的依赖限制。最后提及蓝牙聊天示例,展示RFCOMM协议通信的实现。全文提供了蓝牙开发的技术要点和注意事项。

Qt历险记,专注Qt技术,三年医疗设备研发经验,1年机器视觉研发经验,半年柔性传感研发经验。 399

【转】Quartz任务监控管理

原地址http://sundoctor.iteye.com/blog/441951 Quartz任务监控管理 博客分类: Spring Java quartz配置管理项目管理JavaHibernate  Quartz任务监控管理,类似Windows任务管理器,可以获得运行时的实时监控,查看任务运行状态,动态增加任务,暂停、恢复、移除任务等。对于动态增加任务...

javahepeng的专栏 467

芒果YOLOv1改进35:主干Backbone篇之MobileViTv3:全网首发最新 MobileViTv3 系列最强改进版本(三)|轻量化Transformer视觉转换器,简单有效地融合了本地全局

芒果YOLOv1改进35:主干Backbone篇之MobileViTv3:全网首发最新 MobileViTv3 系列最强改进版本(三)|轻量化Transformer视觉转换器,简单有效地融合了本地全局

包括YOLOv5、YOLOv7、YOLOv8等模型改进 407

Quartz任务监控管理(转)

应网友sohuexe的要求,做一个Quartz任务监控管理,类似Windows任务管理器,可以获得运行时的实时监控,查看任务运行状态,动态增加任务,暂停、恢复、移除任务等。对于动态增加任务,可以参加我的前一篇文章《Quartz如何在Spring动态配置时间》,本文在前文的基础上扩

bj_xiufeng的专栏 781

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

Quartz任务监控管理 (1)

Quartz任务监控管理,类似Windows任务管理器,可以获得运行时的实时监控,查看任务运行状态,动态增加任务,暂停、恢复、移除任务等。对于动态增加任务,可以参加我的前一篇文章《Quartz如何在Spring动态配置时间》,本文在前文的基础上扩展,增加暂停、恢复、移除任务等功能

bj_xiufeng的专栏 2111

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

aspnetboilerplate 后端异步任务监控:Hangfire Dashboard 与 Quartz 管理界面

你是否还在为后端异步任务的监控和管理而烦恼?任务执行状态不透明、失败无法及时发现、调度规则难以调整?本文将详细介绍如何在 aspnetboilerplate(ABP)框架中集成并使用 Hangfire Dashboard 和 Quartz 管理界面,帮助你轻松掌控所有异步任务的生命周期,提升系统可靠性和可维护性。读完本文,你将能够:配置并使用 Hangfire Dashboard 实时监控任务状态...

gitblog_01045的博客 415

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

Quartz Scheduler任务监控与管理:打造可视化调度中心

在企业级应用开发中,任务调度系统如同后台神经中枢,支撑着定时数据同步、报表生成、系统监控等关键业务流程。然而传统调度系统普遍面临三大痛点:任务状态不可见、故障排查无依据、资源占用难评估。Quartz Scheduler作为Java生态中最成熟的调度框架,提供了完善的任务编排能力,但原生监控功能相对薄弱。本文将系统讲解如何基于Quartz构建企业级可视化调度中心,通过事件监听、数据采集和前端展示三大...

gitblog_00148的博客 476
上一篇: 对几个通用的Java hashCode重写方案的一些思考和探讨
下一篇: eclipse调试的方法和技巧
wangshfa
博客等级 码龄17年 117粉丝 2原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值