Masstransit:当无法访问代理时,PublishFault context.Message 为空
Masstransit: PublishFault context.Message is null when broker not reachable
我正在为实际代理 (RabbitMQ) 关闭时使用 Masstransit 发布的消息实施故障转移解决方案。
这个想法是抓取失败的消息,将它们存储在某个地方,然后在代理启动并且 运行.
时重新发布
可能的解决方案是使用 PublishObserver 实现 PublishFault 方法。
地铁版本为 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)。
我正在为实际代理 (RabbitMQ) 关闭时使用 Masstransit 发布的消息实施故障转移解决方案。 这个想法是抓取失败的消息,将它们存储在某个地方,然后在代理启动并且 运行.
时重新发布可能的解决方案是使用 PublishObserver 实现 PublishFault 方法。
地铁版本为 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)。