4

我正在尝试通过 Azure 服务总线库 Azure.Messaging.ServiceBus 发送消息。我正在关注本教程并发送/处理一条消息。

调用 processor.StopProcessingAsync() 时,该操作大约需要一分钟(每次)。在 Azure 门户中查看时,所有消息都已处理。我不知道为什么即使队列上没有消息,处理器也需要这么长时间才能停止。

似乎每次都需要(完全相同)相同的时间。如果有人能指出为什么需要这么长时间以及如何减少它(配置/设置?),我将不胜感激。提前致谢!

4

2 回答 2

3

行。在浏览源代码时,我发现接收器启动后有一个默认的“等待时间”,即 60 秒。这可以通过在 ServiceBusClientOptions.ServiceBusRetryOptions 上设置TryTimeout来降低。

请参阅: ServiceBusRetryOptions AmqpReceiver.ReceiveMessagesAsyncInternal

于 2020-12-15T13:57:38.463 回答
0

我对此进行了测试,它按预期工作:

var clientOptions = new ServiceBusClientOptions();
clientOptions.RetryOptions.TryTimeout = new TimeSpan(0, 0, 5);
await using var client = new ServiceBusClient(connectionString, clientOptions);

将超时设置为 5 秒。

于 2021-05-27T07:37:34.417 回答