自动过期孤立订阅(Azure ServiceBus Messaging SubscriptionClient)

And*_*nas 9 servicebus azure publish-subscribe orphaned-objects

我想到的场景是:Service Bus用于实例到实例的通信,因此Subscription对每个服务实例都是唯一的.最终结果是,如果实例未正常关闭,则其订阅不会被删除.

当服务实例"死"并重新启动时,订阅的先前内容是不相关的并且可以被丢弃.

那么,有没有办法为Service Bus订阅设置"生存时间"或模拟类似的东西,而不必诉诸一些自定义的孤立检测机制?

And*_*nas 7

从Azure SDK 2.0开始,这可以按预期工作.

此外,与其他报告相反,在我的测试中,只要有待处理的接收者收听该订阅,订阅就不会被删除.

var description = new SubscriptionDescription(topicPath, subscriptionId);
description.AutoDeleteOnIdle = TimeSpan.FromSeconds(600);
namespaceManager.CreateSubscription(description);
Run Code Online (Sandbox Code Playgroud)


Cle*_*ers 5

确切的功能在下一版本的待办事项列表中。也就是说,您可以在角色环境中使用instance-id来创建订阅的名称,从而让重新启动的实例重用订阅。实例ID名称是稳定的。

编辑:功能为AutoDeleteOnIdle https://docs.microsoft.com/zh-cn/dotnet/api/microsoft.servicebus.messaging.subscriptiondescription