Azure 存储队列 - 是否有用于设置毒消息 TTL 的应用程序范围配置

Azure Storage Queues - Is there an App wide configuration for setting poison messages TTL

我正在使用由存储队列触发的 Azure Webjob,使用 [QueueTrigger] 属性,病毒消息处理由集成包本身完成。

我正在尝试找到一种方法来将毒邮件的 ExpirationTime 设置为大于默认 7 天的时间。

Looking at the docs,这些是所有可用的配置选项:

{
    "version": "2.0",
    "extensions": {
        "queues": {
            "maxPollingInterval": "00:00:02",
            "visibilityTimeout" : "00:00:30",
            "batchSize": 16,
            "maxDequeueCount": 5,
            "newBatchThreshold": 8,
            "messageEncoding": "base64"
        }
    }
}

The options to configure it by code,似乎也没有帮助:

问题:

有没有办法配置队列,使带毒邮件具有自定义 ExpirationTime

注意:我知道您可以切换到手动方式来处理有毒消息,并且队列消息上会有一个 属性,但是我不想回退到那种方法。

不,没有可用于控制它的配置。几个选项取决于什么最有效

  1. 增加可见时间 + dequeuecount 让消息在移动到毒队列之前停留更长时间 https://docs.microsoft.com/en-us/azure/azure-functions/functions-bindings-storage-queue?tabs=in-process%2Cextensionv5%2Cextensionv3&pivots=programming-language-csharp#host-json

  2. 使用不同的触发器从毒队列中读取消息,并根据需要将其添加到具有更长 TTL 的不同队列中。 Expiration date of poison queue

  3. 注册一个接管毒消息处理的自定义队列处理器,您可以根据需要自由使用不同的 TTLs https://docs.microsoft.com/en-us/answers/questions/440576/azure-queue-storage-set-ttl-for-the-poison-queue-j.html