rabbitmq - Masstransit:PublishFault context.Message 在无法访问代理时为空
问题描述
当实际代理 (RabbitMQ) 关闭时,我正在为使用 Masstransit 发布的消息实施故障转移解决方案。这个想法是抓住失败的消息将它们存储在某个地方,然后在代理启动并运行时重新发布。
可能的解决方案是使用 PublishObserver 实现 PublishFault 方法。
Masstransit 的版本是 5.5.5
public Task PublishFault<T>(PublishContext<T> context, Exception exception) where T : class
{
var message = context.Message; // message is null
..... // logic to save fault message in persistent storage
}
预期结果是可以访问 context.Message
实际结果 - context.Message 为空;
解决方案
这已在 MassTransit 的开发版本中得到修复,该版本应在某个时候发布(如 5.5.6)。
推荐阅读
- python - Docker ModuleNotFoundError 即使此模块不再包含在代码中
- pandas - 尝试制作条形图时获取“'函数'对象不可迭代”
- node.js - nodejs v13.10.1 安装在高山上
- gnuplot - 求和 - Gnuplot 表达式
- python - 通过匹配日期将 2 个数据框列合并为一个
- java - 超类和子类中几乎相同的方法发生冲突。为什么?
- php - Laravel Eloquent 失败了两个关系之间的联合
- c# - 斜扣也在 json 文件中创建时间跨度类
- ios - 如何在 iOS Swift 5 中启用来自应用设置的推送通知?
- java - 忽略 Spring REST WS 中的接受标头