• Spring集成XxlJob核心初始化类,对应版本:2.4.1-SNAPSHOT


    XxlJobSpringExecutor: 继承了XxlJobExecutor父类,实现了ApplicationContextAware,SmartInitializingSingleton,DisposableBean接口
    在Spring容器启动后根据是否是单例Bean来执行SmartInitializingSingleton接口的afterSingletonsInstantiated()方法调用
    1、从Spring容器中获取所有的BeanName集合,通过BeanName找到对应的Bean的所有标注了 @XxlJob 注解的方法,将其封装为 MethodJobHandler 类放到XxlJob jobHandlerRepository容器中
       @XxlJob 注解: value(): jobhandler name;init(): 初始化handler,在运行handler方法前调用;destroy(): 在handler方法运行结束后进行调用
    2、GlueFactory.refreshInstance(1): Bean的属性注入处理
    3、XxlJobFileAppender.initLogPath(logPath): 应用初始化日志文件夹,可以通过 xxl.job.executor.logpath 配置进行修改
    4、initAdminBizList(adminAddresses, accessToken): 根据客户端配置的链接XxlJob-admin应用的地址列表和接口访问令牌进行AdminBizClient类初始化,可以通过 xxl.job.admin.addresses 配置进行修改,可以配置多个地址,使用英文逗号进行分割,单机器的资源是有限的,可以通过分片策略来把任务发送到指定范围的机器上进行任务调度
    5、JobLogFileCleanThread.getInstance().start(logRetentionDays): 启动磁盘日志文件清理线程,可以通过配置 xxl.job.executor.logretentiondays 配置来调整,小于3天任务直接不启动,配置大于等于3天时,会一天执行一次,清理超过配置天数日期的日志文件
    6、TriggerCallbackThread.getInstance().start(): 任务执行结果回调线程,通过远程通信,将调用结果同步到xxljob-admin应用上, 必须满足AdminBizList是有数据,两个线程,一个从队列中获取所有的数据进行回调,另一个是回调失败重试线程
    7、initEmbedServer(address, ip, port, appname, accessToken): 启动远程通信服务,底层使用netty进行服务通信,EmbedHttpServerHandler 使用单独的线程池来处理请求信息,目前请求仅支持POST请求,并且只处理 /beat:心跳 /idleBeat:空闲检测 /run:执行任务 /kill:结束任务 /log:记录日志 这几种请求类型
     

  • 相关阅读:
    【CANoe】文件处理_hex文件读取解析
    OBS Studio免费开源录屏工具
    Netty的零拷贝(Zero-Copy)
    23.Spring Cloud + Spring Boot + Mybatis + Uniapp分布式、微服务、云架构企业快速开发架构之Shell 函数
    【云原生实战】KubeSphere实战——多租户系统实战
    叶子识别 颜色的特征提取 缺陷检测等
    实时检测网络钓鱼攻击的5种方法
    云流化:XR扩展现实应用发展的一个新方向!
    视频服务器配置参数有哪些要求和标准
    docker简单实战
  • 原文地址:https://blog.csdn.net/now19930616/article/details/132826108