2022-04-13 分布式任务调度Quartz

为什么要用Quartz?
在分布式架构中,当某个服务压力过大的,处理数据过慢的时候,我们会选择一种方式就是启动多实例,例如现在我启动了两个A,负载均衡 来处理数据,加快服务的响应速度,但是当A服务上有定时任务呢?比如: 计算一下今天总收入,汇总; 两个A ,统计两遍,汇总两遍~~~~!!!!!

这就GG了,因此分布式任务调度的需求应运而生=====Quartz;
解决的问题:
1 任务不重复跑 如上的问题
2 任务不漏跑(当一个节点挂掉,另一个节点也会支撑起所有任务运行,多节点时任务是随机分配的) misfire 策略会使漏掉的任务,重新执行

如果是springboot的单机服务,那么其实spring中的task就可以完美解决,只需要两个注解 启动类上加@EnableSh** 以及在定时任务的方法上加上 @Sch** 和一个cron表达式就可以完成定时任务了;

下面回归正题: Quartz, 有几个重要属性
1 job 你的定时任务
2 trigger 触发定时任务的条件 如 cron 表达式
3 scheduler 任务调度器,用来处理任务何时触发,以及job和trigger的绑定

其中 job 可以有多个trigger , 但是一个trigger只能对应一个job;

使用demo

https://blog.csdn.net/sqlgao22/article/details/100669377

你可能感兴趣的:(springcloud,分布式,quartz,数据分析,区块链,大数据)