Azure 服务总线队列自动删除,就像在 RabbitMQ 中一样

Azure Service Bus queue autodelete like in RabbitMQ

我已经使用 RabbitMQ 一段时间了,现在我正在尝试使用 Azure 服务总线。目前我真的很困惑,我找不到这个自动删除功能,就像它存在于 RabbitMQ 中一样。如果在指定时间内没有对队列进行任何操作,我只会发现自动删除间隔,但这绝对是另一种东西。

Auto-delete (queue that has had at least one consumer is deleted when last consumer unsubscribes)

^^ 来自 RabbitMQ 文档

有什么方法可以使用 Azure 服务总线设置此类功能?或者也许你知道一些技巧?或者微软可能计划在未来的版本中实现此功能?

当我需要这个功能时,我可以解释一下: 我有 1 个队列,有多个消费者。只有当所有消费者都取消订阅时,我才应该删除这个队列(简单,正确),所以我不能为每个消费者调用删除这个队列。它应该只发生在最后一个消费者身上。

看起来我必须编写一些糟糕的代码来同步我的所有消费者和删除队列操作,但我真的不想那样做。

我已经调查了一些类似的问题 (Detect and Delete Orphaned Queues, Topics, or Subscriptions on Azure Service Bus),它与我的问题类似但很老了。所以我希望这次能有新的东西...

还有其他解决办法吗?

您要查找的功能称为 AutoDeleteOnIdle. You can set it up on queues and topics。如果在 5 分钟内(或更长时间,取决于您的实体的定义)没有连接,该实体将被删除。