Quartz
Martian158
这个作者很懒,什么都没留下…
展开
-
8.Quartz源码取经之线程池
1.为什么用线程池?1.1 场景有多个任务需要并发执行1.2 解决方法方法一:给每个任务在执行时再创建新线程方法一缺点:(1)创建线程耗时(2)任务多时,线程数暴增导致CPU、内存爆掉方法二:线程池,预先建立多个线程,任务到来时,从池中挑一个线程来执行任务2. Quartz中的线程池2.1 线程类//重载了Thread的run方法,执行时实际调用的是runable.run()...原创 2020-03-29 21:10:42 · 479 阅读 · 0 评论 -
8.Quartz源码取经之插件模式
1.为什么用插件模式?1.1 场景想创建一个开放的应用,主应用只包含标准的功能,个性化的功能交给其他开发者实现1.2 解决方法主应用不知道子应用的存在:开放API,子应用独立运行。百度地图开放API、jar依赖、SDK、小程序1都属于这种。主应用知道子应用的存在,子应用运行依赖于主应用:插件模式2.插件模式怎么实现–Quartz中的插件2.1 定义插件接口public inte...原创 2020-03-28 23:17:09 · 239 阅读 · 0 评论 -
7.Quartz源码取经之建造者模式
为什么用建造者模式?1. 场景成员变量多,且创建对象时,多个成员变量可以有不同组合时(类似麦当劳套餐)2. 解决方法方法一:创建多个构造函数解决,不同入参组合方法一缺点:组合数太多,需要创建的构造函数太多方法二:创建入参包含所有成员变量的一个构造函数方法二缺点:配置不同套餐时,可能会看到很多null传入方法三:只创建一个默认构造函数,里面只对需要默认值的-成员变量赋值。其余变量的...原创 2020-03-22 19:50:46 · 186 阅读 · 0 评论 -
6.Quartz应用场景之定时任务监控
要解决的问题想知道每个定时任务有没有被执行,执行的结果怎么样解决思路通过JobListener实现定时任务历史记录额外库表#增加STATUS字段记录定时任务执行状态CREATE TABLE `my_job_details` ( `ID` int unsigned NOT NULL AUTO_INCREMENT, `JOB_NAME` varchar(190) NOT NULL,...原创 2020-02-29 20:59:24 · 616 阅读 · 0 评论 -
5.Quartz应用场景之配置化定时任务(多节点)
要解决的问题接上文,多节点情况下,加载jobDetail和Trigger会偶发性出现并发错误1解决思路加锁控制只有一个节点加载定时任务额外库表CREATE TABLE `my_job_load_ctrl` ( `ID` int unsigned NOT NULL, `SERVER_KEY` varchar(200) DEFAULT NULL, `IS_LOCKED` varc...原创 2020-02-29 20:30:52 · 1211 阅读 · 0 评论 -
4.Quartz应用场景之配置化定时任务(单节点)
要解决的问题把多个定时任务的时间规则写死在代码里,当有改动时,需要动代码。代码多、维护成本略高。解决思路引入额外的库表,把定时任务配置在库表里,应用启动时再调API配置到Quartz原生表中额外库表建表CREATE TABLE `my_job_details` ( `ID` int unsigned NOT NULL AUTO_INCREMENT, `JOB_NAME` v...原创 2020-02-29 19:16:48 · 610 阅读 · 0 评论 -
3.Quartz应用场景之应用重启后定时任务依然生效
默认你已掌握Springboot 工程搭建ApplicationRunner环境信息Quartz 2.3.0Springboot 2.2.0mysqlIDE:idea思路定时任务配置持久化到数据库搭建步骤创建Quartz相关库表(脚本路径如下)quartz-2.3.0-SNAPSHOT\src\org\quartz\impl\jdbcjobstore\tables_mys...原创 2020-02-29 11:43:32 · 2657 阅读 · 0 评论 -
2.Quartz关键概念
设计理念执行的任务和时间规则分离,实现灵活组合1JobDetailTriggerScheduler个人认为实际系统中需要组合的场景不多 ↩︎原创 2020-02-27 22:44:56 · 236 阅读 · 0 评论 -
1.Quartz定时输出HelloWorld
默认你已掌握Springboot 工程搭建ApplicationRunner环境信息Quartz 2.3.2Springboot 2.2.0IDE:idea搭建步骤pom文件关键依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId&...原创 2020-02-25 22:31:23 · 621 阅读 · 0 评论