Setting TTL for poison queue messages

PAUL FALLOWS 21 Reputation points
2023-05-03T22:33:57.8566667+00:00

Hi

I have successfully amended the TTL when adding a new message to a queue. However, if the function fails to successfully process the message it’s added to the poison queue with the default TTL.

What would be the best way to change the TTL for poison queue messages? Register my own IQueueProcessFactory? If so how would I do that(I have attempted this unsuccessfully). What would I need to override for the poison queue message?

Any help would be much appreciated.

Thanks

Paul

Azure Functions
Azure Functions
An Azure service that provides an event-driven serverless compute platform.
5,953 questions
{count} votes

1 answer

Sort by: Most helpful
  1. Pramod Valavala 20,656 Reputation points Microsoft Employee Moderator
    2023-05-04T19:22:26.23+00:00

    @PAUL FALLOWS Unfortunately, I believe there is no way to change this as this is handled by the binding directly with no options exposed to configure this.

    Instead, you could either do one of the following:

    1. Handle Poison Messages Explicitly
      This requires you catching errors and sending messages to the poison queue due to invalid content or whatever your scenario demands.

    This, however, does not handle the case for where messages are sent to the poison queue for cases where you do not catch errors on.

    1. Forward Messages from Poison Queue
      This approach would be to have a separate function that monitors the poison queue and re-queues messages as appropriate to another queue with all the properties set.
    0 comments No comments

Your answer

Answers can be marked as Accepted Answers by the question author, which helps users to know the answer solved the author's problem.