【发布时间】:2017-11-01 07:42:11
【问题描述】:
所以我有一个 azure 函数作为调用内部托管 API 的队列触发器。
对于如何处理由于除了有毒之外的问题而无法处理的消息,网上似乎没有明确的答案。
一个例子:
收到我的消息,函数尝试调用 API。消息有效负载是正确的,并且可以处理,但是无论出于何种原因,API/服务都已关闭(此时间可能超过 10 分钟)。目前发生的情况是消息传递计数达到其最大值(10),然后被推送到死信队列,随后每条消息都会发生这种情况。
我需要一种方法来不增加交付计数或在达到最大值时将其重置。或者,我可以在不增加传递计数的情况下放弃对消息的 peek 锁定,因为我想停止处理队列中的任何消息,直到 API/服务重新启动并运行。 这样我可以确保所有可以处理的消息都不会因为服务之间的连接问题而陷入死信。
关于如何实现这一点的任何想法?
【问题讨论】:
-
您解决了这个问题吗,需要进一步的帮助吗?
-
我很抱歉没有回复。我认为在服务/api 停机的情况下,我们将通过休眠线程和增加交付计数来延迟触发器重试。这样,如果它出现故障,它不会立即达到最大交付计数并陷入死信。感谢您的帮助
标签: azure message-queue azure-servicebus-queues brokeredmessage