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

[FDBUS 4.2]fdbus消息发送失败后的流程处理

任何通信中间件的消息发送都是存在发送失败的情况的,今天我们来梳理fdbus消息发送失败后的流程处理。
fdbus的消息均以CFdbMessage的格式来封装,并建其作为一个CBaseJob来进行入队和出队操作。CBaseJob被出队消耗时就会调用run()方法,在run()中执行消息发送逻辑,如下所示
在这里插入图片描述
上面箭头所示均为消息发送逻辑,以doRequest为例
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
消息发送有重试上限,如果在重试上限达到后,消息仍然未发完,则表示消息发送失败
在这里插入图片描述
通过fatalError修改相关标志位
在这里插入图片描述
而CFdEventLoop::buildFdArray()需要通过此标志位进行fatal_error_watches的添加处理(Line145),并最终执行CSysFdWatch的删除操作(Line173)
在这里插入图片描述
由于CFdbSession是CSysFdWatch的子类,因此会触发CFdbSession的析构。
在这里插入图片描述
在这里插入图片描述
如果fdbus client端的重连标志位都设置了(Line72),那么就会重新向name_server请求服务端地址(Line80),并发起连接(Line86)
在这里插入图片描述
以上便是fdbus消息发送失败后触发重连的所有逻辑处理。

http://www.dtcms.com/a/289763.html

相关文章:

  • SigLIP和SigLIP2
  • 题单【循环结构】
  • maven构建Could not transfer artifact失败原因
  • 系统思考:整体论
  • 【成品设计】基于STM32的家庭用水检测系统设计
  • 2025《艾诺提亚失落之歌》新手攻略
  • 看板中如何处理跨职能任务协作?
  • 大模型词表设计与作用解析
  • Autosar RTE实现观测量生成-基于ETAS软件
  • [Python] -项目实践2- 用Python快速抓取网页内容(爬虫入门)
  • python网络爬虫小项目(爬取评论)超级简单
  • 阶段1--Linux中的计划任务
  • 调试Claude code的正确姿势
  • 类型混淆、越界写入漏洞
  • 基于单片机出租车计价器设计
  • 重塑优化建模与算法设计:2024上半年大模型(LLM)在优化领域的应用盘点
  • Java入门-【3】变量、字符串、条件、循环、数组的简单总结
  • python 字典中取值
  • SQL189 牛客直播各科目同时在线人数
  • MySQL事物相关
  • Logback简单使用
  • 什么是SEO关键词优化的实战提升指南?
  • 如何系统化掌握角色设计与提示工程的深度整合
  • 基于Event Sourcing和CQRS的微服务架构设计与实战
  • 第十四届全国大学生数学竞赛初赛试题(非数学专业类)
  • 零基础入门 AI 运维:Linux 部署全栈项目实战(MySQL+Nginx + 私有化大模型)
  • 论文解读:Rethinking vision transformer through human–object interaction detection
  • 西门子 S7-1500 系列 PLC CPU 选型全指南:从类型到实战
  • 搭建大模型
  • 新人加入团队后如何快速理解看板?