趣谈xxl-job的注册机制

589 阅读1分钟

image.png

xxl-job简介

xxl-job是一款轻量级的分布式任务调度平台,因为其开源,简单,易扩展等特点,被很多IT企业使用。我司的产品线也是使用了xxl-job作为任务调度平台,所以我最近仔细拜读了xxl-job的源码,受益匪浅,今天给大家分享下,执行器的注册机制。

xxl-job的注册机制

趣谈xxl-job的注册机制

                        注册原理图

xxl-job由调度器和执行器两部分组成,调度器是xxl-job的大脑,何时触发任务,哪个机器执行任务,这都是调度器去决策的。执行器是打工人,是干具体事的,运行在业务服务器上。执行器就和我们打工人是一样,上班要打卡,下班要打卡,上班的过程中,还要不断地上报自己的状态,不然老板让你做事的时候,发现你溜号了,那就会给公司造成一定的损失。

xxl-job里面的调度器,是一个控制狂魔,它盯着手机,一旦发现你没有及时上报状态,它就认为你溜号了,就把你从名单里移除了。

注册机制的实现

执行器在ExecutorRegistryThread类中启动一个线程,告诉调度器一声“我来了”,不管上报成功与否,都会睡眠30s,睡醒了,要继续告诉调度器一声“我还在”,就这样不断的报备。一旦jvm关闭,执行器告诉调度器一声“我走了”。

调度器在JobRegistryMonitorHelper类中启动一个线程,它会将超过90s没有上报的执行器,从xxl_job_registry表中删除,然后更新xxl_job_group表的address_list字段。

趣谈xxl-job的注册机制