gpt4 book ai didi

c# - 在 RavenDB 中使用 SaveChangesAsync

转载 作者:行者123 更新时间:2023-11-30 19:45:11 24 4
gpt4 key购买 nike

我正在向 RavenDB 数据库中插入大量数据;大约 2500000 条记录。这需要尽可能在更短的时间内完成。

我使用一个列表来保存 SaveChangesAsync 返回的任务对象:

session.Store(loc);

splitter++;
if (splitter % 2048 == 0)
{
var t = session.SaveChangesAsync();
tasks.Add(t);

if (tasks.Count == 2)
{
Task.WaitAll(tasks.ToArray());
tasks.Clear();
}
}

此代码在配备 i7(8 核)和 12 GB 内存的机器上运行。如果我持有的 Task 对象的数量为 2(如您在代码中看到的),它会起作用,但如果我将此数量增加到 8(核心数量),我会收到一个 System.IndexOutOfRangeException(有时是一个 System.AggregateException,它说:“Raven.Abstractions.Exceptions.ConcurrencyException:尝试使用非当前 etag 对文档“X/I”进行 PUT”)。

这里有什么问题?

谢谢

最佳答案

每个 session 只能有一个异步挂起操作。

关于c# - 在 RavenDB 中使用 SaveChangesAsync,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11098612/

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