quartz

用quartz实现多任务动态加载

拥有回忆 提交于 2019-11-27 16:13:05
Quartz 是什么 Quartz是一个用Java编写的任务调度框架,任务调度是什么,举例说明:比如我们需要在每个星期四下午三点时候发周报,我们需要一个系统在两点半的时候给我们一个发周报的提醒,这个提醒就是一次任务,每周星期四下午两点半的时候自动触发这个任务,这就可以理解为这个系统的一次任务调度。Quartz提供给我们定时调度已定义好的任务的能力,如果你了解quartz的调度计划cronExpression表达式的配置,你会感叹quartz的灵活与强大。 Quartz的应用广泛,对于Hudson报表系统,恰好为邮件定制功能提供强有力的支持。 Quartz 的简单使用 在Hudson报表系统的一期中也用到了quartz,不过当时是把任务调度信息写死在配置文件中,每次系统启动后,调度的配置都加载在内存中,没有实现多任务的动态加载。我们先以此来说明quartz的基本用法。Hudson报表系统是用spring框架将quartz整合起来的,故只介绍spring和quartz的整合使用。 下图为spring配置文件中quartz的配置: 其实quartz的使用主要有三个部分,一个调度器Scheduler,一个要被调度的任务JobDetail,一个触发器Trigger,对上面的配置做一说明,在图中从下到上: 1、 配置一个job,这个job就是我们要调度的任务类, 2、 配置jobDetail

项目ITP(六) spring4.0 整合 Quartz 实现动态任务调度

╄→гoц情女王★ 提交于 2019-11-27 16:12:50
2014-05-18 12:51 by Jeff Li 前言   系列文章: [传送门]   项目需求:       http://www.cnblogs.com/Alandre/p/3733249.html      上一博客写的是基本调度,后来这只能用于,像每天定个时间 进行数据库备份。但是,远远不能在上次的需求上实现。所以需要实现spring4.0 整合 Quartz 实现动态任务调度。 正文   spring4.0 整合 Quartz 实现 任务调度 。这真是期末项目的最后一篇,剩下到暑假吧。   Quartz 介绍    Quartz is a full-featured, open source job scheduling service that can be integrated with, or used along side virtually any Java application - from the smallest stand-alone application to the largest e-commerce system. Quartz can be used to create simple or complex schedules for executing tens, hundreds, or even tens-of-thousands

Spring Quartz的原理

邮差的信 提交于 2019-11-27 16:12:38
Quartz是一个大名鼎鼎的Java版开源定时调度器,功能强悍,使用方便。 一、核心概念 Quartz的原理不是很复杂,只要搞明白几个概念,然后知道如何去启动和关闭一个调度程序即可。 1、Job 表示一个工作,要执行的具体内容。此接口中只有一个方法 void execute(JobExecutionContext context) 2、JobDetail JobDetail表示一个具体的可执行的调度程序,Job是这个可执行程调度程序所要执行的内容,另外JobDetail还包含了这个任务调度的方案和策略。 3、Trigger代表一个调度参数的配置,什么时候去调。 4、Scheduler代表一个调度容器,一个调度容器中可以注册多个JobDetail和Trigger。当Trigger与JobDetail组合,就可以被Scheduler容器调度了。 二、一个最简单入门实例 import org.quartz.*; import org.quartz.impl.StdSchedulerFactory; import java.util.Date; /** * quartz定时器测试 * * @author leizhimin 2009-7-23 8:49:01 */ public class MyJob implements Job { public void execute

使用cronTriggerBean子类,动态设置cronExpression(quartz +...

青春壹個敷衍的年華 提交于 2019-11-27 16:12:25
Quartz的使用前准备: 1.引入必要的jar包: quartz_all_xxx.jar 或者quartz_xxx.jar slf4j_api_xx.jar quartz所需要的日志工具 quartz知识简单了解: 2.quartz的两种作业存储方式: RAMJobStore,利用内存来持久化调度程序信息 JDBC作业存储,利用JDBC驱动和后台库中保存的调度程序信息 3.Quartz两种触发器 simpleTrigger 适合执行简单的调度任务 cronTrigger 使用cron表达式,调度相对复杂的任务 4.quartz调度器—将任务和触发器关联起来。 由scheduler接口体现,该接口主要定义了三个方法: void addJob(JobDetail jobDetail, Boolean replace) Date scheduleJob(JobDetail jobDetail, Trigger trigger) //使用trigger类控制该job Date scheduleJob(Trigger trigger) //添加触发器调度作业 在spring中使用quartz,创建quartz作业bean的两种方法: 1.使用JobDetailBean包装QuartzBean子类的实例 创建一个Quartz的作业bean

springboot 整合quartz (三):jobStores

断了今生、忘了曾经 提交于 2019-11-27 16:12:12
JobStore介绍 JobStore是负责跟踪调度器中所有的工作数据:作业任务、触发器、日历等。在配置文件(quartz.properties)中定义JobStore的形式,JobStore有两种RAMJobStore和JDBCJobSTore RAMJobStore :配置简单,速度快,但程序停止,数据丢失 JDBCJobSTore :配置略微复杂,可以保存数据 RAMJobStore quartz.properties org.quartz.jobStore.class = org.quartz.simpl.RAMJobStore OK了,不需要别的配置,直接启动正常运行就好。 JDBCJobStore 下载sql文件 下载地址:点击下方的Download now sql位置:quartz解压根目录/docs/dbTables mysql中创建test数据库执行sql文件 配置文件 quartz.properties(这里只给出主要配置,全部配置:参见github源码) # 持久化配置(存储方式使用JobStoreTX,也就是数据库) org.quartz.jobStore.class:org.quartz.impl.jdbcjobstore.JobStoreTX #数据库中quartz表的表名前缀 org.quartz.jobStore.tablePrefix:qrtz_

崛起于Springboot2.X + 多节点mongodb实现区块链交易记录(36)

佐手、 提交于 2019-11-27 16:11:27
《SpringBoot2.X心法总纲》 (本篇博客已于2019-08-28 优化更新) 序言:根据前两篇 区块链单节点mysql实现交易记录 和 Mongodb多数据源处理 ,进行整合,实现区块链多节点mongodb实现交易记录方案。所以本篇博客算是一个升级篇。 技术栈: SpringBoot2.0.X、mongodb:(存储区块数据)、mysql:(获取业务逻辑数据)、Scheduled:(或者Quartz) redis:(单节点--【可以升级到哨兵模式或者集群】) 区块链思想:信息不可篡改,公式机制,分布式全剧记账。 码云地址: https://gitee.com/mdxl/most_block_cj.git 1、pom依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>mysql<

崛起于Springboot2.X + 页面配置Quartz定时任务(47)

可紊 提交于 2019-11-27 16:11:11
《SpringBoot2.X心法总纲》 技术栈:Springboot2.X + Quartz +FastMybatis (自认为比mybatis-plus更方便的框架) + Hutool + lombok FastMybatis框架博客: 01、崛起于Springboot2.X之入门FastMybatis: my.oschina.net/mdxlcj/blog/1835665 02、崛起于Springboot2.X之整合FastMybatis精装版 : my.oschina.net/mdxlcj/blog/3059687 03、 FastMybatis框架快速入门: 官方文档 Quartz入门级框架博客: 04、崛起于Springboot2.X之集成Quartz定时调度: my.oschina.net/mdxlcj/blog/1862472 序言:之前公司有一个需求说是可以通过一个界面来操作定时任务的时间、包括修改、启动、关闭等功能,而不是在代码中写死,那个时候从网上找了很久都没有找到,博客都特别初级,只能算是入门的后来就不了了之了,目前已经实现开发出这套功能,公开一下,我也希望能够帮助更多的人在企业更加快速的实现该功能,如图: 然后我们看一下,新增定时任务配置截图: 这个功能也有批量暂停定时任务的功能、立即恢复、以及执行,当然还有定时任务启动时的日志记录,如图:

quartz 定时器时间表达式

亡梦爱人 提交于 2019-11-27 15:29:58
按顺序依次为 秒(0~59) 分钟(0~59) 小时(0~23) 天(月)(0~31,但是你需要考虑你月的天数) 月(0~11) 天(星期)(1~7 1=SUN 或 SUN,MON,TUE,WED,THU,FRI,SAT) 7.年份(1970-2099) 其中每个元素可以是一个值(如6),一个连续区间(9-12),一个间隔时间(8-18/4)(/表示每隔4小时),一个列表(1,3,5),通配符。由于"月份中的日期"和"星期中的日期"这两个元素互斥的,必须要对其中一个设置?. 0 0 10,14,16 * * ? 每天上午10点,下午2点,4点 0 0/30 9-17 * * ? 朝九晚五工作时间内每半小时 0 0 12 ? * WED 表示每个星期三中午12点 "0 0 12 * * ?" 每天中午12点触发 "0 15 10 ? * *" 每天上午10:15触发 "0 15 10 * * ?" 每天上午10:15触发 "0 15 10 * * ? *" 每天上午10:15触发 "0 15 10 * * ? 2005" 2005年的每天上午10:15触发 "0 * 14 * * ?" 在每天下午2点到下午2:59期间的每1分钟触发 "0 0/5 14 * * ?" 在每天下午2点到下午2:55期间的每5分钟触发 "0 0/5 14,18 * * ?" 在每天下午2点到2

SSM的quartz动态定时器

人盡茶涼 提交于 2019-11-27 15:22:58
Controller层: package com.smartteam.controller; import com.smartteam.controller.BaseController; import com.smartteam.service.SampleTryEntryService; /** * <p> * 前端控制器 * </p> * * @author XiaoDeng * @since 2019-08-06 */ @Api(tags = "动态定时器") @RestController @RequestMapping("/sampleTry") public class SampleTryController extends BaseController { @Autowired private SampleTryEntryService sampleTryEntryService; /** * 逻辑处理 */ public void sampleTryEntity(){ // 逻辑处理之后启动定时任务 sampleTryEntryService.scrhySendMessage(); } } SampleTryEntryService层: package com.smartteam.service; import com.baomidou.mybatisplus

java学习笔记——众筹项目练习——文件上传进度条、quartz石英调度

帅比萌擦擦* 提交于 2019-11-27 13:42:08
文件上传进度条 还记得在前面的文章我们实现的功能当中有文件上传的功能吗?今天我们来为文件上传美化一下,添加一个文件上传的进度条来实时显示文件上传的进度。 说干就干!实现方法很简单,也就不使用任何插件了,我们的文件上传是使用ajax实现的。那我们就在ajax中获取到文件上传的实时信息,并这些实时信息显示在Bootstrap样式库中的进度条中即可。 获取ajax上传文件时,实时的上传进度信息。 利用ajax中的xhr字段参数来实现进度条功能。 在Bootstrap样式库中找到进度条样式拷贝到我们的代码中。 将进度条样式作为一个模态框放在我们的页面中,在需要时显示和隐藏。 完成,简单吧!我们来试一试! 启动后台manager系统并登录后进入广告管理页面。 点击新增按钮添加广告图片,选择好图片后点击确定,上传图片。 因为我们的进度条在大的百分之百后会隐藏掉,速度很快,不容易截图,所以我在隐藏掉之前放置了一个alert来阻塞弹出,只要我们不关闭这个alert,进度条就会显示。 关闭alert,因为进度条已经达到了百分之百,进度条的模态框就会隐藏掉。 ok,验证完毕。 quartz石英调度 接下来我们了解一下quartz石英调度,石英调度通常用于定时任务。 石英调度: quartz:-石英;定时任务; 是由原生java完成(); quartz:非常方便的进行定时任务调度; 1、核心包 ; 2