指定公共交通中的发布超时

问题描述

使用Masstransit库发布消息时,是否可以指定超时值。消息代理崩溃时如何处理方案。现在看来,发布调用会无限期地等待。控制这些行为会很好。我们应该依靠取消令牌吗?超时实施可能会更好。

解决方法

您可以将CancellationToken传递给Publish。如果取消,将抛出OperationCanceledException。如果要使用超时,则可以创建一个带有超时的CancellationTokenSource

using var source = new CancellationTokenSource(TimeSpan.FromSeconds(30));

await bus.Publish(message,source.Token);