tbschedule是出自淘宝的一个分布式任务调度框架,经过了众多大型项目的考验。了解及使用可参考官方文档http://code.taobao.org/p/tbschedule/wiki/index/
tbschedule的数据结构
tbschedule在zookeeper中的数据结构及与类的对应关系
下面从tbschedule的初始化流程入手,一步步分析tbschedule的实现。
tbschedule的初始化流程——详解
1.入口TBScheduleManagerFactory
spring的TBScheduleManagerFactory配置
2.TBScheduleManagerFactory执行流程
TBScheduleManagerFactory执行流程
说明:
1)、TBScheduleManagerFactory的init方法,创建了ZKManager和InitialThread;ZKManager主要管理和zk的连接和根目录的创建,InitialThread继承了Thread,接下来的初始化流程就有InitialThread线程完成,init方法结束。
2)、InitialThread线程调用TBScheduleManagerFactory的initialData方法完成初始化,InitialThread线程结束。initialData方法中
(1),调用zkManager.initial()创建跟路径
(2),new ScheduleDataManager4ZK(this.zkManager)
(3),new ScheduleStrategyDataManager4ZK(this.zkManager)
(4),注册调度管理器scheduleStrategyManager.registerManagerFactory(this)
(5),new ManagerFactoryTimerTask(this)并调度
ScheduleDataManager4ZK主要负责RootPath/baseTaskType路径下节点和数据的维护
ScheduleStrategyDataManager4ZK负责RootPath/strategy和RootPath/factory路径下节点的维护
registerManagerFactory方法主要是创建this.PATH_ManagerFactory/IP$HOSTNAME$uuid$sqe-num和this.PATH_Strategy/StrategyName/IP$HOSTNAME$uuid$sqe-num,即机器的数量和能处理此策略的机器数量
ManagerFactoryTimerTask的功能是定时的刷新任务调度器的数据,计算每台机器需要的线程组数,并启动相应数量的线程组(TBScheduleManagerStatic)
3)、ManagerFactoryTimerTask调用TBScheduleManagerFactory的refresh方法,refresh中调用reRegisterManagerFactory,reRegisterManagerFactory方法的主要流程是调用registerManagerFactory,assignScheduleServer和reRunScheduleServer方法。ManagerFactoryTimerTask一个运行周期结束。
分享到:
相关推荐
FFmpeg 3.3.3 版本源码 2017年8月20日发布 20170820-8754ccd
最新版本3.3.3的源码包含了对二维码扫描的增强和优化,为开发者提供了更稳定、高效的二维码处理功能。 一、ZXing的主要功能模块: 1. **二维码/条形码扫描**:ZXing支持多种条码和二维码格式,如QR Code、Code 128...
微聚云科牛气霸屏v3.3.3源码是针对H5技术的一款软件开发资源,主要用于创建具有强烈视觉冲击力和广泛传播效果的网页应用。在深入理解这个项目之前,我们需要先了解一下H5的基本概念。 H5,全称HTML5,是超文本标记...
`cas-client-core-3.3.3` 是一个CAS客户端的核心库,它使得应用程序能够与CAS服务器进行交互,实现用户的认证和授权功能。 1. **CAS协议原理**: CAS协议通过代理票据(Proxy Ticket)和服务票据(Service Ticket...
附件为Centos6.6环境下静态编译的ffmpeg-3.3.3版本linux可执行程序和SDK库,其中包含基本的x264、aac编解码库;还增加字幕渲染(drawtext参数)、水印叠加等功能;configure配置参数为: ./configure --target-os=...
《Hudson持续集成工具v3.3.3源码解析》 Hudson,作为一个开源的持续集成工具,自诞生以来就备受开发者们的喜爱。它的主要功能是自动化构建、测试和部署软件,帮助团队提高开发效率,减少错误,确保软件质量。在本篇...
压缩包中的 "apache-maven-3.3.3-src.zip" 文件包含了 Maven 3.3.3 的源代码,对于开发者来说,这是一个深入了解 Maven 内部实现的好资源。通过阅读源码,可以学习 Maven 如何处理 POM 解析、依赖管理、插件执行等...
摘要 Hadoop是一个由Apache基金会所开发的分布式系统基础架构。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进 Hadoop是一个由Apache基金会所开发的分布式系统基础架构。...
标签中的"core-3.3.3.j"、"core-3.3.3-j"和"core-3.3.3-s"可能是对核心库不同部分的简写,分别对应核心库的主JAR、API文档JAR和源代码JAR。 在压缩包的文件列表中提到的"lib"目录,通常存放的是项目依赖的库文件。...
赠送jar包:zookeeper-3.3.3.jar; 赠送原API文档:zookeeper-3.3.3-javadoc.jar; 赠送源代码:zookeeper-3.3.3-sources.jar; 包含翻译后的API文档:zookeeper-3.3.3-javadoc-API文档-中文(简体)版.zip 对应...
在"Maven 3.3.3"这个版本中,我们看到了以下关键知识点: 1. **POM**:POM是Maven的核心概念,它是项目配置的中心文件,包含了项目的基本信息,如项目名称、版本、开发者信息、依赖库等。POM通过继承、聚合和依赖...
** Maven 3.3.3 知识点详解 ** Maven 是一个强大的构建工具,主要应用于Java项目,由Apache Software Foundation开发并维护。它的全名是Apache Maven,其核心概念是项目对象模型(Project Object Model,简称POM)...
随心搜3.3.3是一款强大的搜索工具,它的出现为用户提供了便捷的全网资源检索体验。在当今信息爆炸的时代,快速、准确地找到所需信息成为了一项基本需求,而这款软件恰好满足了这样的需求。 首先,让我们来了解一下...
《EasyExcel:JAVA解析Excel工具详解》 在Java开发中,处理Excel数据是一项常见的任务,例如数据导入导出、报表生成等。EasyExcel是阿里巴巴开源的一款高效、易用的Java库,专门用于处理Excel文件,它以其轻量级、...
核心知识点详解: 本文将深入探讨在给定的压缩包中涉及的几个关键组件:`core-3.3.3`, `javase-3.3.3`, `zxing-1.7-core` 和 `zxing-j2se-1.7`,以及与之相关的JDK版本,包括JDK1.7和JDK1.8。这些组件主要用于...
赠送jar包:core-3.3.3.jar; 赠送原API文档:core-3.3.3-javadoc.jar; 赠送源代码:core-3.3.3-sources.jar; 赠送Maven依赖信息文件:core-3.3.3.pom; 包含翻译后的API文档:core-3.3.3-javadoc-API文档-中文...
RichFaces_3.3.3_TLD.chm
《CAS服务器3.3.3版本详解》 CAS(Central Authentication Service)是一种广泛使用的开源单点登录(Single Sign-On, SSO)协议,它旨在简化Web应用的安全认证过程。"cas-server-3.3.3-release.zip"是CAS服务器的一...
Eigen3.3.3是该库的一个稳定版本,提供了许多改进和新特性。 Eigen库的核心特性包括: 1. **类型模板**: Eigen使用C++模板机制,可以方便地处理各种数据类型,如float、double、int以及自定义数据结构。这使得它...
zxing.java源码解析 AndroidBasic Study Qrcode封装 对com.google.zxing:core:3.3.3二次封装,形成jar包,可自定义view,可控制解码算法等。 IoC思想实现的简易ViewBinder 利用注解,反射实现布局的注入、控件注入、...