• 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:记录日志 这几种请求类型
     

  • 相关阅读:
    什么是顺序表?
    注意力机制的一种卷积替代方式
    【无标题】
    k8s快速入门教程-----4 工作负载控制器之deployment
    如何从内核漏洞造一个容器逃逸
    关于 国产麒麟系统Qt强制退出应用程序qApp->exit()无效 的解决方法
    通达信期货接口代码分享
    C语言--文件操作详解(1)文件操作的基本概念及文件操作函数用法举例
    2022河南萌新联赛第(七)场:南阳理工学院 F-数对
    git: ‘lfs‘ is not a git command unclear
  • 原文地址:https://blog.csdn.net/now19930616/article/details/132826108