我有一个存储帐户,其中blob的创建会触发事件网格订阅,从而将BlobCreated
事件移动到队列中。之后,在队列上触发Function应用程序,该应用程序将在损坏的文档上失败,从而将队列项目移动到毒队列。
现在,它似乎使用默认的7天TTL来移动它们,但对于毒药队列,我希望永远使用TTL。有什么方法可以更改触发器函数中毒药队列的TTL吗?
到目前为止我尝试过的:
- 查看事件网格订阅是否有任何选项可以设置队列的TTL
- 在
host.json
文件中查找可能的选项(在Func应用程序中( - 使用反射更改
CloudQueueMessage
输入中的ExpirationTime
,迫切希望它可以用于创建中毒队列项目
现在似乎使用默认的7天TTL来移动它们,但对于毒药队列我想要一个永远的TTL。有什么办法吗在触发器函数中更改毒药队列的TTL?
您可以将它们设置为-1。这里和这里有更多信息。您需要手动处理这些问题。您可以很容易地将侦听器添加到中毒队列中,然后重新发送TTL为-1的消息。
更新
对此进行了进一步研究。您可以实现一个返回CustomQueueProcessor的自定义IQueueProcessorFactory
。默认实现在这里。您可以更改毒药队列的处理方式,并发送-1的TTL。