在 Azure 存储中使用队列

Posted

技术标签:

【中文标题】在 Azure 存储中使用队列【英文标题】:Using Queue in Azure Storage 【发布时间】:2021-05-06 10:12:06 【问题描述】:

我正在尝试解决 1 个在 .NET 中使用 AzureStorage.Queue 的问题。

首先,我有 2 个项目,1 个 Web API 项目,1 个 WebJob 项目。 (全部写在.NET Core 2.2)

我的项目API在创建新产品时,会将产品的1个消息存储ID插入Azure中的消息队列(队列名称:产品)

同时在我的项目 Web Job 中,我有 1 个函数使用 [QueueTrigger["product"]] 来监听新消息插入我的“产品”队列时。但我不知道为什么在将消息插入“产品”队列后,我的消息会自动删除并插入另一个名为“产品毒药”的队列?

我在 2 Project 中使用与 Azure 存储相同的连接字符串。我尝试使用不同的连接字符串,但结果是一样的。

感谢您对我的支持。

【问题讨论】:

阅读这里关于错误处理和毒队列blog.tech-fellow.net/2019/02/06/… @silent 感谢您对我的支持。 【参考方案1】:

您的队列触发函数使用了您的 API 项目生成的消息,并且该函数似乎没有以正确的格式使用它。

这里有一篇文章讲述了为什么会生成毒队列:Poison messages

当队列触发函数失败时,Azure Functions 会重试 对给定的队列消息最多运行五次,包括 第一次尝试。如果所有五次尝试都失败,函数运行时会添加一个 向名为 -poison 的队列发送消息。

【讨论】:

以上是关于在 Azure 存储中使用队列的主要内容,如果未能解决你的问题,请参考以下文章

我们可以使用 Azure 存储队列作为事件源吗?

访问 Azure 存储帐户中的所有队列

Azure 存储队列中的隐藏消息

如何伪造/单元测试 Azure 存储队列?

Azure 存储队列触发 Azure 函数高可用性

Azure 存储队列触发的 Azure 函数