繁体   English   中英

Azure ServiceBusProcessor 需要很长时间才能停止

[英]Azure ServiceBusProcessor takes a long time to stop

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

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

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

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

请参阅: ServiceBusRetryOptions AmqpReceiver.ReceiveMessagesAsyncInternal

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

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

将超时设置为 5 秒。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM