gpt4 book ai didi

c# - 基于 session 的接收器的 Azure ServiceBus 管理

转载 作者:行者123 更新时间:2023-12-03 07:00:26 28 4
gpt4 key购买 nike

在 Azure 服务总线中使用基于 session 的实体时,管理接收器的最佳实践是什么?我通过池管理我的非基于 session 的实体,类似于推荐的 here 。基于 session 的实体是否可以以相同的方式进行池化,也许与 SessionId 一起池化?
目前,我正在为每个调用创建/处置接收器实例,尽管 session 预计会连续接收多条消息。

接收器实例化如下:

await using var receiver = await _serviceBusFactory.ServiceBusClient.AcceptSessionAsync(topicName, subscriptionName, sessionId);

最佳答案

您可以像非 session 示例一样将它们集中起来,但有一个警告:如果 session 接收者失去 session 锁定,您将需要再次接受 session ,因此您可能希望尝试对 session 进行某些操作接收者在将其交还给调用者之前确保锁仍然有效,例如调用 GetSessionStateAsync。如果锁丢失,你会得到一个异常。我认为这可能可以通过在 SessionReceiver 上引入一个属性来指示它是否实际上已死亡来改进。

或者,您可以使用 ServiceBusSessionProcessor 来为您处理 session 接收器管理。

关于c# - 基于 session 的接收器的 Azure ServiceBus 管理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72457902/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com