当前位置: 首页 > news >正文

BlockingQueue遇到活锁问题

问题描述

首先初始化过程,从其他api获取的任务列表,我把这个列表放进BlockingQueue队列中,然后开一个线程池去跑校验、处理任务等逻辑和任务状态回传。当任务处理失败就放回队头重试,然而依赖的第三方服务有一段时间一直有问题,导致任务一直处理失败,虽然没有阻塞,但程序无法继续。

解决方案

  1. 把失败的任务放在队列尾部
  2. 重试机制修改
    • 指数退避算法:退避时间随机,碰撞时机就很小
    • 加入随机因素,让由于失败导致的重试时间随机。

相关文章:

  • ORA-00600 [2662]
  • linux - centos7 部署 redis6.0.5
  • Elasticsearch 的搜索功能
  • 大数据Alluxio面试题及参考答案
  • 【项目实践】高并发内存池
  • 【CC2530 教程 十二】CC2530 Z-Stack 硬件抽象层
  • MATLAB导入Excel数据
  • 海康/大华/宇视/华为/汉邦/天地伟业/英飞拓/科达/中星微/同为/天视通等主流监控设备RTSP地址
  • 深入理解MySQL数据库设计中的三范式及其违反后果
  • 两数之和解题记录
  • 自定义 ForDemo 类:简化 for 循环书写
  • Flutter网络请求封装:高效、灵活、易用的Dio工具类
  • 第十三章:优化内存管理_《C++性能优化指南》_notes
  • 强大的AI网站推荐(第四集)—— Gamma
  • Pre-flash和Main flash
  • 机器学习——CatBoost、目标变量统计、排序提升算法
  • 《TCP/IP网络编程》学习笔记 | Chapter 22:重叠 I/O 模型
  • 重复出现的数字
  • ‌GraphRAG 知识图谱,设置适配阿里云百炼平台实战教程【上】
  • 【大模型基础_毛玉仁】4.3 参数选择方法
  • 张涌任西安市委常委,已卸任西安市副市长职务
  • 3年多来俄乌要首次直接对话?能谈得拢吗?
  • 金砖国家召开经贸联络组司局级特别会议,呼吁共同抵制单边主义和贸易保护主义
  • 美政府以拨款为要挟胁迫各州服从移民政策,20个州联合起诉
  • 宝通科技:与宇树合作已签约,四足机器人在工业场景落地是重点商业化项目
  • 英国首相斯塔默一处房产发生火灾