spring schedule轻量级分布式调度方案--设计
spring schedule轻量级分布式调度方案
背景
本文标题定为《spring schedule轻量级分布式调度方案》,希望以此为切入点,分析以下场景面临的共性问题。
场景一: spring schedule
- spring的普及型以及spring schedule任务调度实现的一股清流
- schedule模块的局限性,仅限于单机执行
场景二: 创建行为的幂等性
- 创建操作时幂等性处理
- 比如:用户频繁的点击,新建模型;
场景三: mq 消息幂等性处理
- 消息幂等性统一处理
场景抽象
以上场景,有个共同的部分,多次重复操作保证只成功一次。
设计
从开发人员使用的角度梳理:
-
添加注解@OnceOnTheSameTime
自定义分布式锁超时时间
自定义分布式锁的key -
定义aop切面切入
-
执行过程说明
- 扩展性
1. 使用SpEL来表达可以的定义,支持多种参数
1. 模板设计模式,方便更多场景的接入
实现
移步下文: https://blog.****.net/weixin_43493520/article/details/107877979
其他
- 本文作为任务调度部分基于spring schedule轻量级调度的分布式实现,以下业界常用的调度框架提供了更丰富的功能
1. xxl-job
1. elastic-job - 更多的场景,期待用户来发掘