在 Azure 存储中使用队列

问题描述

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

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

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

  • 同时在我的项目 Web 作业中,我有 1 个函数使用 [QueueTrigger["product"]] 来侦听新消息插入我的“产品”队列时。但是我不知道为什么在消息插入“product”队列后,我的消息自动删除并插入另一个队列名称“product-poison”?

  • 我在 2 项目中使用与 Azure 存储相同的连接字符串。我尝试使用不同的连接字符串,但结果相同。

感谢您对我的支持

解决方法

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

这里有一篇文章说明了为什么会产生毒药队列:Poison messages

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

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...