spring schedule轻量级分布式调度方案--设计

背景

本文标题定为《spring schedule轻量级分布式调度方案》,希望以此为切入点,分析以下场景面临的共性问题。

场景一: spring schedule

  1. spring的普及型以及spring schedule任务调度实现的一股清流
  2. schedule模块的局限性,仅限于单机执行

场景二: 创建行为的幂等性

  1. 创建操作时幂等性处理
  2. 比如:用户频繁的点击,新建模型;

场景三: mq 消息幂等性处理

  1. 消息幂等性统一处理

场景抽象

以上场景,有个共同的部分,多次重复操作保证只成功一次

设计

从开发人员使用的角度梳理:

  1. 添加注解@OnceOnTheSameTime
    自定义分布式锁超时时间
    自定义分布式锁的key

  2. 定义aop切面切入

  3. 执行过程说明

spring schedule轻量级分布式调度方案--设计

  1. 扩展性
    1. 使用SpEL来表达可以的定义,支持多种参数
    1. 模板设计模式,方便更多场景的接入

实现

移步下文: https://blog.****.net/weixin_43493520/article/details/107877979

其他

  1. 本文作为任务调度部分基于spring schedule轻量级调度的分布式实现,以下业界常用的调度框架提供了更丰富的功能
    1. xxl-job
    1. elastic-job
  2. 更多的场景,期待用户来发掘