前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >xxl-job基础组件核心类:JobTriggerPoolHelper(一行一行代码解读)

xxl-job基础组件核心类:JobTriggerPoolHelper(一行一行代码解读)

作者头像
一写代码就开心
发布2023-02-01 17:13:29
2190
发布2023-02-01 17:13:29
举报
文章被收录于专栏:java和pythonjava和python

目录

1 学习这个类你首先需要的知识

1.1 volatile关键字原理

代码语言:javascript
复制
被volatile关键字修饰的变量,编译器与运行时都会注意
到这个变量是共享的,因此不会将该变量上的操作与
其他内存操作一起重排序。volatile变量不会被缓存在
寄存器或者对其他处理器不可见的地方,


因此在读取volatile类型的变量时总会返回最新写入的值。

2 JobScheduleHelper类主要职能

代码语言:javascript
复制
任务投递  和     下次执行时间维护

3 JobTriggerPoolHelper类主要职能

代码语言:javascript
复制
线程池异步触发任务

3.1 为什么要创建快慢两个线程池

线程池隔离–快慢分离 目的:部分慢执行的线程,会拖慢整个线程池,因此我们需要将快慢分离。 需要区分出哪些是慢线程,这里给一个依据是一分钟内的慢执行(耗时大于500ms)次数为10次

3.2 哪些情况下会进入慢线程池

  • 1.任务执行频率高每分钟执行次数要大于10次以上(jobTimeoutCountMap,存放每个任务的执行慢次数,60秒后自动清空该容器)
  • 2.job Client端执行任务耗时较长,形成堆积 或者 网络延迟卡顿严重
  • 3.数据库相关查询出现耗时严重,遇到cpu100%或者拿不到连接等瓶颈问题

3.3 代码解读

添加触发任务到线程池中:核心方法,快慢线程池执行逻辑一样(不同点是队列的容量大小)

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2023-01-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 目录
  • 1 学习这个类你首先需要的知识
    • 1.1 volatile关键字原理
    • 2 JobScheduleHelper类主要职能
    • 3 JobTriggerPoolHelper类主要职能
      • 3.1 为什么要创建快慢两个线程池
        • 3.2 哪些情况下会进入慢线程池
          • 3.3 代码解读
          相关产品与服务
          容器服务
          腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档