【发布时间】:2021-02-10 04:23:21
【问题描述】:
在使用 MassTransit 库发布消息时,是否可以指定超时值。消息代理宕机时如何处理场景。现在看来 Publish 调用无限期地等待。控制这些行为会很好。我们应该依赖取消令牌吗?超时实现可能会更好。
【问题讨论】:
标签: c# rabbitmq timeout publish masstransit
在使用 MassTransit 库发布消息时,是否可以指定超时值。消息代理宕机时如何处理场景。现在看来 Publish 调用无限期地等待。控制这些行为会很好。我们应该依赖取消令牌吗?超时实现可能会更好。
【问题讨论】:
标签: c# rabbitmq timeout publish masstransit
您可以将CancellationToken 传递给Publish。如果取消,OperationCanceledException 将被抛出。如果你想使用超时,你可以创建一个带有超时的CancellationTokenSource。
using var source = new CancellationTokenSource(TimeSpan.FromSeconds(30));
await bus.Publish(message, source.Token);
【讨论】: