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

BlockingQueue遇到活锁问题

问题描述

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

解决方案

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

相关文章:

  • 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 参数选择方法
  • python笔记之判断月份有多少天
  • 【商城实战(72)】解锁用户评价与晒单功能开发秘籍
  • 【第2月_day10】Pandas数据查看与选择
  • MySQL查询语句的使用
  • TypeScript实现二分查找算法:原理剖析与最佳实践
  • 网页的性能优化
  • 一. 相机模组摆放原理
  • OpenAI深夜直播「偷袭」谷歌!GPT-4o原生图像生成:奥特曼带梗图,AGI战场再燃战火
  • 阶段二:面向对象编程
  • 生活电子常识——cmd不能使用anaconda的python环境,导致输入python打开应用商店