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

Tru*_*der 1 c# publish timeout masstransit rabbitmq

使用 MassTransit 库发布消息时是否可以指定超时值。当消息代理出现故障时如何处理场景。现在看来 Publish 调用无限期地等待。如果能控制这些行为就好了。我们应该依赖取消令牌吗?超时实现可能会更好。

Chr*_*son 8

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

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

await bus.Publish(message, source.Token);
Run Code Online (Sandbox Code Playgroud)