问题描述
我刚刚了解队列存储消息触发的 Azure 函数。我能够生成消息并触发函数,但是一旦函数确认消息,消息会去哪里?
他们只是从队列中消失了。
- 如果我想重新处理它们怎么办?
- 这是如何实现的?
理想情况下,我想告诉 Queue 何时“出列”消息,而不是以某种方式自动处理。
解决方法
我能够生成消息并触发函数,但是在哪里做 一旦函数确认消息,消息就会消失?
当函数被调用时,一条消息从队列中出队。作为出队过程的一部分,消息在一定时间内变得不可见(通过可见性超时持续时间指定)。这是必需的,以便在任何给定时间点只有一个消费者处理消息。
如果Function能够成功处理消息,它将被自动删除。你无法真正控制这种行为。
如果 Function 无法处理该消息,则该消息将在其可见性超时持续时间到期后重新出现在队列中,并会被另一个 Function 实例再次拾取。
一旦消息被重试“n”次并且结果总是不成功,Function 会将消息放入死信/毒药队列中,我相信该队列的名称将类似于 <yourqueuename>-poison
。>