问题描述
使用Masstransit库发布消息时,是否可以指定超时值。消息代理崩溃时如何处理方案。现在看来,发布调用会无限期地等待。控制这些行为会很好。我们应该依靠取消令牌吗?超时实施可能会更好。
解决方法
您可以将CancellationToken
传递给Publish
。如果取消,将抛出OperationCanceledException
。如果要使用超时,则可以创建一个带有超时的CancellationTokenSource
。
using var source = new CancellationTokenSource(TimeSpan.FromSeconds(30));
await bus.Publish(message,source.Token);