美文网首页
XXL-JOB 源码分析

XXL-JOB 源码分析

作者: 索隆大大 | 来源:发表于2018-03-02 23:32 被阅读419次

    调度中心自动发现执行器服务

    xxl没有采用zk等协作服务器,是通过数据库来实现的服务自动注册。

    执行器端

    执行器端应用启动时,首先会执行com.xxl.job.core.executor.XxlJobExecutor.start方法,这是在applicationcontext-xxl-job.xml中配置好的。
    start方法中会启动一个守护线程,守护线程中通过jetty服务调用调度中心固定的controller(/api/registry)。

    调度中心

    调度中心提供有很多controller,除了提供给前台界面UI的controller之外,还有个JobApiController,专门接收执行器端发来的请求,其中:
    /api/registry
    接收执行器端注册请求,通过执行器appName,和执行器地址更新数据库中的时间,即数据库中该执行器地址的时间每隔30秒更新一次。

    调度中心启动时同时启动两个守护线程:
    JobRegistryMonitorHelper
    每隔30秒移除数据库中过期的执行器,通过比较更新时间小于当前时间-90s。

    这样就可以及时将宕掉的执行器端某个服务器排除在外了。

    相关文章

      网友评论

          本文标题:XXL-JOB 源码分析

          本文链接:https://www.haomeiwen.com/subject/nqbzxftx.html