注意:我向previously提出了一个非常类似的问题,但对于我正在寻找的内容还不够明确,并且过于激进地标出了答案。我正在寻找一个特定点确认的是/否。
我想构建一个自动化作业,通过按计划查询DocumentDb来查找DocumentDb文档的离线处理,查找自上次执行检查以来发生过更改的文档。
鉴于DocumentDb中可用的元数据,看起来这样做的方式如下:
我的问题是这有效吗? 保证这不会错过任何文件吗?据我所知,它归结为DocumentDb实现中_ts周围的事务语义,没有记录到这个详细程度。我想知道是否可以保证没有文件可以使用更低的_ts值更新,而不是在返回最近更改的查询期间返回的最大 _ts值该集合中的文件。
由David的评论提示编辑:
更准确一点,有几个具体的场景:
答案 0 :(得分:1)
使用默认一致性时,无法保证此功能,因为具有较低_ts的文档可以稍后显示。但是,如果您可以保证更新请求相隔足够远(例如60秒),则风险非常低。
我不认为大卫的边缘情况是一种担忧,只要你把每个文件都用更高的_ts视为新的。
您可能还想考虑使用像Richard Snodgrass'这样的附加方法。时间模型。这使得幂等性语义更容易。