设计 | 未验证 | 限时独活worker

@

目录

    title 限时独活worker
    
    participant 定时任务
    participant node-1
    participant node-2
    participant worker-1
    participant worker-2
    participant 存活标记
    participant 存活锁
    participant 业务锁
    participant DB
     
    定时任务->定时任务: 启动
    定时任务->node-1: 唤醒
    node-1->存活标记: 注册存活标记为自己(100%成功),标记是worker中的一个final值
    node-1->定时任务: 标记修改的状态 == 定时任务执行的状态
     
    worker-1->存活锁: 存活标记是自己,尝试加存活锁,否则尝试解自己
    worker-1->worker-1: 存活锁不是自己,直接休眠
    worker-1->DB: 获取需要处理的数据
    worker-1->业务锁: 尝试加锁
    worker-1->worker-1: 加锁失败,放弃本轮处理,睡眠
    worker-1->worker-1: 处理业务
    worker-1->存活锁: 临近下一轮定时,解存活锁
     
    定时任务->定时任务: 启动
    定时任务->node-2: 唤醒
    node-2->存活标记: 注册存活标记为自己(100%成功)
    node-2->定时任务: 标记修改的状态 == 定时任务执行的状态
    worker-2->存活锁: 存活标记是自己,尝试加存活锁,否则尝试解自己
    

    在这里插入图片描述

    posted @ 2025-05-20 15:09  问仙长何方蓬莱  阅读(6)  评论(0)    收藏  举报