Azure 队列存储消息去哪里?

问题描述

我刚刚了解队列存储消息触发的 Azure 函数。我能够生成消息并触发函数,但是一旦函数确认消息,消息会去哪里?

他们只是从队列中消失了。

  • 如果我想重新处理它们怎么办?
  • 这是如何实现的?

理想情况下,我想告诉 Queue 何时“出列”消息,而不是以某种方式自动处理。

解决方法

我能够生成消息并触发函数,但是在哪里做 一旦函数确认消息,消息就会消失?

当函数被调用时,一条消息从队列中出队。作为出队过程的一部分,消息在一定时间内变得不可见(通过可见性超时持续时间指定)。这是必需的,以便在任何给定时间点只有一个消费者处理消息。

如果Function能够成功处理消息,它将被自动删除。你无法真正控制这种行为。

如果 Function 无法处理该消息,则该消息将在其可见性超时持续时间到期后重新出现在队列中,并会被另一个 Function 实例再次拾取。

一旦消息被重试“n”次并且结果总是不成功,Function 会将消息放入死信/毒药队列中,我相信该队列的名称将类似于 <yourqueuename>-poison。>