Azure Cosmos db 的最小 TTL 值应该是多少,以便它更改提要

What should be the minimum TTL value for Azure Cosmos db, so that it goes to change feed

如果我将 azure cosmos db 中文档的 TTL 设置为 1 秒,那么它永远不会到达 changefeed 这是什么原因? 最有可能的是,在可以计算更改差异之前,数据已被删除。

如果是这个原因,TTL 的最小值应该是多少,以保证它会出现在更改提要中?

将 TTL 设置为 1 秒,这是一个替换操作。它将出现在更改提要上。关键是,你需要有一些东西 (Change Feed Processor, Azure Functions) 可以在不到 1 秒内做出反应(读取变化并采取行动),否则它会错过它。

因此在 TTL 上设置的秒数等于您的检测机制将其拾取所需的秒数。

话说回来,其实是可以扭转局面的。为什么不在文档上添加一个 "delete" 标志(软删除),当它被您的 Change Feed 检测机制拾取时,将 TTL 设置为 0?这将首先让您检测到删除意图并采取行动,然后,将 TTL 设置为 0 将删除文档,而无需第二次更改提要通知。