ManagerFactoryTimerTask

2018-08-01  本文已影响0人  7d29b558374e

ManagerFactoryFactory加载和初始化以后
ManagerFactoryTimerTask不停的定时执行,进行refresh
核心是
reRegisterManagerFactory();

1.assignScheduleServer
tb根据某个策略 给每个 factroy[10.254.125.4bogon26AC347B56DC4148A320D4BC75A89D92$0000000020]
分配若干个执行线程组 (代码中也叫StrategyTask),尽量平均分配

不是真正生成线程组只是,分配数量,更新zk节点的值
[zk: localhost:2181(CONNECTED) 8] get /fengjr-asset/task/haoxu/strategy/UserStatTask/10.254.125.4bogon2997B15F75CD4F83AB565F2EA1C65AC60000000022 {"strategyName":"UserStatTask","uuid":"10.254.125.4bogon2997B15F75CD4F83AB565F2EA1C65AC60000000022","requestNum":2,"currentNum":0,"message":""}
如图 requestNum

2.reRunScheduleServer
分配完之后,重启
发现当前这个factory中的某个strategy对应StrategyTask已经启动的数量比分配的少,增加一个
即TBScheduleManagerFactory.createStrategyTask
如果是Schedule类型
result = new TBScheduleManagerStatic(this,baseTaskType,ownSign,scheduleDataManager);
1.如图 在以下节点创建一个新节点

image.png

UserStatTask10.254.125.43FBB199F55EF49BE82138E7DC506CC9D$0000000031为线程组的id

2.启动一个
HeartBeatTimerTask
进行任务项的定时扫描,重新分配
其实就是对下面的两个数据进行分配

上一篇下一篇

猜你喜欢

热点阅读