从头开始学Quartz
文章平均质量分 50
生产库中大量使用了定时任务,而我却对此不够熟悉。如果让我来解决实际问题,我真的能解决么?
小大宇
能与优秀的人为伍自然就会变优秀
展开
-
使用Quartz同时触发集群多台机器同一任务
需求:使用Quartz同时触发集群多台机器同一任务可以考虑在定时任务的JobDataMap中增加一个字段"url"。该参数"url"可以像我这样配置{"url" : "10.10.0.11:80/dispatch;10.10.0.12:80/dispatch;10.10.0.13:80/dispatch" ,"param":"{ param_ json }"}这样可以解析该参数后,将请求使用HTTP请求,转发到同一集群的其它机器上......原创 2022-01-11 16:48:15 · 2963 阅读 · 0 评论 -
使用Quartz调度多台机器的资源
需求:多实例机器处理各自分表环境:1.多实例机器。2.已配置好 各台机器的IP 与 所有分表的对应关系。(1)获取到系统中所有线程代码参考自获取Java VM中当前运行的所有线程 - 苍穹冰尘 - 博客园 /** * 获取Java VM中当前运行的所有线程 * @return */ public static Thread[] findAllThreads() { ThreadGroup group = Thread.curre原创 2022-01-11 16:20:23 · 507 阅读 · 0 评论 -
定时任务调度框架Quartz--集群使用的11张表
文章目录Quartz 11张表Quartz 11张表表名称QRTZ_CRON_TRIGGERS存储CRON类型的Trigger,包括名称、所属组、Cron表达式、市区信息QRTZ_SIMPLE_TRIGGERS存储SIMPLE类型的Trigger,存储名称、分组、重复次数、执行时间间隔已经已经执行的次数。失火策略该表不存,存放于ORTZ_TRIGGER表中。QRTZ_TRIGGERS存储所有的Trigger信息,包括名称、分组、类型(Cron或Simple)、当前运原创 2020-08-13 16:14:00 · 3904 阅读 · 1 评论 -
定时任务调度框架Quartz--集群下的JOB与Trigger操作
文章目录核心操作创建一个任务删除一个任务修改一个任务SpringBoot下,使用集群配置Quartz链接: 定时任务调度框架Quartz–SpringBoot使用Quartz并使用集群配置核心操作创建一个任务 创建一个任务非常简单,就是根据JOB接口实现类生成一个CronTrigger或者SImpleTrigger,并同时创建一个JobDetail,交给Scheduler调度器即可。具体实现代码完全可以参原创 2020-08-04 19:38:30 · 1628 阅读 · 0 评论 -
定时任务调度框架Quartz--SpringBoot使用Quartz并使用集群配置
文章目录基本配置导入依赖基本配置文件quartz.properties配置ScheduleFactoryBean与生成Job实例工厂基本配置导入依赖 Quartz版本得话会跟着SpringBoot项目走 <dependency> <groupId>org.springframework.boot</groupId>原创 2020-07-29 15:22:12 · 2076 阅读 · 0 评论 -
定时任务调度框架Quartz--Job Stores
文章目录RAMJobStoreJDBCJobStoreRAMJobStore RAMJobStore是使用最简单的JobStore,它也是性能最高的,因为它直接把Job执行过程中产生的数据存放到内存中。从源码上来看,发现了RAMJobStore中大量使用了HashMap类,所以在服务器宕机重启后,所有数据都丢失了。原创 2020-07-16 19:24:31 · 2107 阅读 · 0 评论 -
定时任务调度框架Quartz--JobListeners
文章目录基础监听接口基础监听接口 JobListener接口方法及其源码方法名作用getName此监听器对象的名称jobToBeExecuted在监听的JobDetail实例即将执行之前触发jobExecutionVetoedScheduler 在 JobDetail 即将被执行,但又被 TriggerListener 否决了时触发这个方法jobWasExecute原创 2020-07-16 11:44:32 · 976 阅读 · 0 评论 -
定时任务调度框架Quartz--Cron表达式
文章目录cron表达式cron表达式 cron表达式总共有7位,记忆口诀:秒分时天月,星期+年还可以使用一些特殊符号:* :表示任意值。比如在秒,表示每一秒。取值范围相当于0~59。如果用于小时,相当于每个小时,0到23。?:只能用于天 (4号位)与 星期几(6号位),表示不确定的时间。比如下面的这个表达式0 0 2 1 * ?,表示每个月的1号的凌晨两点执行。6号位表示星期几,因为每个月的1号是星期几并不确定,所以就用?替代,也是情理之中。/:原创 2020-07-10 17:50:52 · 3030 阅读 · 0 评论 -
定时任务调度框架Quartz--Misfire处理规则
withMisfireHandlingInstructionIgnoreMisfirespublic static final int MISFIRE_INSTRUCTION_IGNORE_MISFIRE_POLICY = -1; IgnoreMisfires策略会把所有错过的定时任务一次性执行。这个不是忽略已经错失的触发的意思,而是说忽略MisFire策略。它会在资源合适的时候,重新触发所有的MisFire任务,并且不会影响现有的调度时间。pub原创 2020-07-10 10:14:54 · 2252 阅读 · 1 评论