gpt4 book ai didi

Azure 服务总线空闲时自动删除

转载 作者:行者123 更新时间:2023-12-05 04:18:16 24 4
gpt4 key购买 nike

我试图找出设置 AutoDeleteOnIdle 时的正确行为。我有一个名为 MyGameMessages 的主题(不透露游戏名称,因为它可能被视为广告)。

我所做的是在服务器场中的每个节点上创建订阅。

var manager = GetNameSpaceManager();
_subscriptionId = Guid.NewGuid().ToString();
var description = new SubscriptionDescription(topic, _subscriptionId);
description.AutoDeleteOnIdle = TimeSpan.FromHours(1);
manager.CreateSubscription(description);

然后我启动一个几乎永远循环的线程(或者至少直到收到退出信号为止)

while(_running)
{
if (_subscriptionId == null)
break;

var message = client.Receive(TimeSpan.FromMinutes(1)); // MARK A
if (message != null)
{
var body = message.GetBody<T>();
// Do stuff with message
message.Complete();
}

}

问题A:

第一个实现在 MARK A 处没有超时。如果一小时内没有消息发送到此主题,订阅将被自动删除。这是预期的行为吗?客户端并没有真正死掉,但我猜它只是在等待消息。没有保活吗?

问题B:

像 MARK A 那样添加超时是否有帮助,或者每 50 分钟创建一个新订阅(为了以防万一而创建一个小的重叠)并放弃旧订阅是一个更好的解决方案吗?

谢谢

约翰

最佳答案

Johan,您上面描述的场景应该符合您的期望。即使没有消息流动,挂起的接收调用也会使订阅保持事件状态。对接收使用较长的超时效果会更好,这样当消息量较低时,您就不会出现繁琐的流量。需要确认的一件事是,如果您正在为主题设置 AutoDeleteOnIdle 值,在这种情况下,订阅接收不会使主题保持事件状态,并且如果一小时内没有消息发送到主题,则它将被删除。删除主题会导致所有订阅也被删除。

您是否仍然看到这种订阅被删除的行为?如果是这样,请向 Azure 实时站点支持和产品团队创建票证并调查具体情况。

关于Azure 服务总线空闲时自动删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16971443/

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