gpt4 book ai didi

c# - 文档 DbChangeFeed 中的 MaxItemCount

转载 作者:行者123 更新时间:2023-12-01 21:26:31 26 4
gpt4 key购买 nike

我正在测试 DocumentDb 的新变更源。我通过轮询 API 将其连接到逻辑应用程序。

因为我只想每个请求 1 个项目,所以我将 MaxItemCount 设置为 1。这工作得很好......直到通过 36 结果。下一个请求给我 70 个结果(最大项目数设置为 1)并且跳过了 +- 150 个文档。

这是 DocumentDB 中的错误还是我做错了什么?

查看代码,前36次,我只得到1个结果,从那时起我遇到了上述问题:

 var changeFeedOptions = new ChangeFeedOptions
{
MaxItemCount = 1,
RequestContinuation = continuationToken,
PartitionKeyRangeId = partitionKey, // singe partioned collection
StartFromBeginning = fromBeginning
};

var feed = ((DocumentClient) _documentClient).CreateDocumentChangeFeedQuery(
collectionUri,
changeFeedOptions);

var result = await feed.ExecuteNextAsync();

var document = result.FirstOrDefault();

return new ChangeFeedResponse
{
ContinuationToken = result.ResponseContinuation, // this token will be used the next time
Document = document
};

最佳答案

对于更改源,粒度是按事务划分的,这意味着来自同一事务的更改被视为原子片段并按原样返回(不能中断事务)。因此,Change Feed 的结果可以将 MaxItemCount(页面大小)扩展到事务边界。例如,一个脚本插入了 70 个文档——所有这些都作为单个事务出现,您轮询更改并提供 MaxItemCount = 1;你会得到 70 件元素(它将在交易边界停止)。这有道理吗?

这70个文档是通过脚本插入的吗?

关于c# - 文档 DbChangeFeed 中的 MaxItemCount,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41282305/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com