清除 Azure 存储队列上的队列

Clearing the Queue on Azure Storage Queue

我正在 运行 我的 Web 应用程序上进行一些测试,其中有一个 WebJob 运行 处理一些后端任务。

我在 Visual Studio 中使用 Cloud Explorer 连接到队列并清除队列中的所有消息。当我重新启动我的 WebJob 时,它仍然会找到消息并尝试处理它们。

这些消息来自哪里?如果我在 Visual Studio 中通过 Cloud Explorer 清除队列,队列不应该是空的吗?顺便说一句,我也清除队列毒药。

VS 队列资源管理器中的清除队列命令确实会删除队列中的所有 条消息,包括由于不可见超时而当前可能不可见的任何消息。查看队列时,如果有任何不可见的消息,您会在 window 底部的显示文本中看到它们(例如“0 of 5 messages”)。

因此,如果您执行了清除命令并且它显示“0 个中的 0 个”消息,则队列完全为空。如果在那之后您的队列触发函数在该队列上被调用,您必须在某处有一些代码将消息添加到该队列。也许不是一个非常令人满意的答案,但是 WebJobs SDK 和 Azure 存储本身都不会以这种方式制造任何消息:)