Quartz-ClusterManager集群管理
转载请注明出处:https://www.cnblogs.com/Dorae/p/9357180.html
本文出自:后端知识点梳理-定时任务Quartz篇章
ClusterManager集群管理线程
每个服务器会定时(org.quartz.jobStore.clusterCheckinInterval这个时间)更新SCHEDULER_STATE表的LAST_CHECKIN_TIME,若这个字段远远超出了该更新的时间,则认为该服务器实例挂了;
注意:每个服务器实例有唯一的id,若配置为AUTO,则为hostname+current_time
线程执行的具体流程:
- 检查是否有超时的实例failedInstances;
- 更新该服务器实例的LAST_CHECKIN_TIME;若有超时的实例:
- 获取STATE_ACCESS锁;
- 获取超时的实例failedInstances;
- 获取TRIGGER_ACCESS锁;
- clusterRecover:
- 针对每个failedInstances,通过instanceId获取每个实例的firedTriggers;
- 针对每个firedTrigger:
- 更新trigger状态:
- BLOCKED->WAITING
- PAUSED_BLOCKED->PAUSED
- ACQUIRED->WAITING
- 若firedTrigger不是ACQUIRED状态(在执行状态),且jobRequestRecovery=true:
创建一个SimpleTrigger,存储到trigger表,status=waiting,MISFIRE_INSTR=MISFIRE_INSTRUCTION_IGNORE_MISFIRE_POLICY. - 删除firedTrigger
- 更新trigger状态:
Quartz-ClusterManager集群管理相关推荐
- Redis集群管理方式
Redis的有三种集群方式:主从复制,哨兵模式和集群. 主从复制 从服务器连接主服务器,发送SYNC命令: 主服务器接收到SYNC后执行BGSAVE命令生成RDB文件,并使用缓冲区记录此后执行的所有写 ...
- quartz在集群环境下的最终解决方案
在集群环境下,大家会碰到一直困扰的问题,即多个 APP 下如何用 quartz 协调处理自动化 JOB . 大家想象一下,现在有 A , B , C3 台机器同时作为集群服务器对外统一提供 SERVI ...
- CynosDB技术详解——存储集群管理
本文由腾讯云数据库发表 前言 CynosDB是架构在CynosFS之上的分布式关系数据库系统,为最大化利用存储资源,平衡资源之间的竞争,检查资源使用情况,需要一套高效稳定的分布式集群管理系统(SCM: ...
- 容器集群管理平台的比较
2019独角兽企业重金招聘Python工程师标准>>> 容器化和微服务是当前最热话题,不久之前,笔者(据说因为现在都不用笔了,"笔者"的称谓已经不合适了,因为输入 ...
- Kubernetes使用集群联邦实现多集群管理
Kubernetes在1.3版本之后,增加了"集群联邦"Federation的功能.这个功能使企业能够快速有效的.低成本的跨区跨域.甚至在不同的云平台上运行集群.这个功能可以按照地 ...
- 交换机知识--集群管理
集群是可以当作单一设备来管理的一组网络设备的集合,集群管理的主要目的是解决大量分散的网络设备的集中管理问题.网络管理者只需要在集群中的一个交换机上配置公网IP地址就可以实现对集群中其它交换机的管理和维 ...
- 基于Kubernetes构建Docker集群管理详解
from: 基于Kubernetes构建Docker集群管理详解 Kubernetes是Google开源的容器集群管理系统,基于Docker构建一个容器的调度服务,提供资源调度.均衡容灾.服务注册.动 ...
- 运维利器-ClusterShell集群管理操作记录
在运维实战中,如果有若干台数据库服务器,想对这些服务器进行同等动作,比如查看它们当前的即时负载情况,查看它们的主机名,分发文件等等,这个时候该怎么办?一个个登陆服务器去操作,太傻帽了!写个shell去 ...
- CynosDB技术详解——存储集群管理【文末有福利】
本文由腾讯云数据库发表 前言 CynosDB是架构在CynosFS之上的分布式关系数据库系统,为最大化利用存储资源,平衡资源之间的竞争,检查资源使用情况,需要一套高效稳定的分布式集群管理系统(SCM: ...
最新文章
- 如何彻底卸载mysql(xp)
- 微信小程序项目重构之Redux状态管理
- 知乎快捷取消我关注的问题chrome插件
- python开发需要掌握哪些知识-研究深度学习的开发者,需要对 Python 掌握哪些知识?...
- 工程之道,深度学习的工业级模型量化实战
- 2010经典句句 学会了以后你的嘴巴会很流利 (转)
- ARP-Address Resolution Protocol-地址解析协议
- 麒麟810加持,华为nova 5z让你一步从青铜变王者
- 基于Session的认证方式_实现认证功能_Spring Security OAuth2.0认证授权---springcloud工作笔记116
- 地址坐标LA3708:Graveyard
- [Selenium]怎样验证页面是否有无变化
- java clone数组_Java中的数组有对应的类么,为什么数组可以直接调用clone()方法?...
- 交叉火力dsp手机调音软件_dsp教程_交叉火力dsp调音教程_教你学dsp百度云(2)
- 基于SSM的个人健康管理系统
- AE插件/Trapcode Suite安装错误/error
- 微商深度揭秘——减肥产品、推广方法
- php传奇发布站,传奇发布网站php源码
- Java基础练习题(逢七跳过、百钱百鸡、不死神兔、复利(利滚利))
- C++ abort() has been called错误
- Linux之——UltraISO写入引导扇区时弹出“找到多于1个分区”解决方法