1

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

如果是这个原因,那么 TTL 的最小值应该是多少,才能保证它会出现在 change feed 中?

4

1 回答 1

2

将 TTL 设置为 1 秒,这是一个替换操作。它将出现在更改提要中。关键是,您需要准备好一些东西(Change Feed ProcessorAzure Functions),它会在不到 1 秒的时间内做出反应(阅读更改并采取行动),否则它将错过它。

因此,在 TTL 上设置的秒数等于检测机制获取它所需的秒数。

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

于 2020-02-06T22:48:37.247 回答