首页 > 解决方案 > Azure App Service 使用服务总线队列消息,即使它已停止

问题描述

我有一个服务总线队列(分区和启用会话),应用程序服务中的 web 作业正在使用该队列中的消息。我收到了一个异常,之后消息的实际处理停止了,但没有从队列中消费消息。

我那时

  1. 停止网络作业
  2. 停止应用服务
  3. 取消激活队列
  4. 检查 Kudu 下正在运行的进程 - 与我的网络作业无关

但仍会消耗消息

我真的必须删除容器(应用服务)吗?(我不想这样做,因为它上面运行了几个 webjobs,因此有几个部署流程。)

如果有人经历过同样的事情,或者任何人都可以发现任何启示,我将不胜感激。

此致

标签: azureazure-webjobsazure-servicebus-queues

解决方案


只要服务/Web 作业关闭,这意味着您的队列消息不会被此资源消耗。

我建议你寻找:

  1. 您的 Web 作业正在运行的不同环境(如测试/暂存)但由于配置错误,它们订阅了错误的队列并使用了您的消息。
  2. 在您或您的任何同事本地运行应用程序。默认情况下,Azure 在访问策略方面的策略非常薄弱。默认情况下,您可以通过本地环境连接到 Azure 服务总线。
  3. 队列中的消息过期。在 Azure 服务总线中,默认 TTL(生存时间)为 14 天。在这种情况下,您将看到消息消失,但这并不意味着它们已被消费。

推荐阅读