【发布时间】:2019-08-11 07:58:03
【问题描述】:
我有以下存储库类在 CosmosDb 数据库中批量插入数据:
public bool InsertZonierData(List<Zonier> zonierList)
{
if (zonierList == null || !zonierList.Any())
{
throw new ZonierListNullOrEmptyException();
}
else
{
try
{
_collection.InsertMany(zonierList);
return true;
}
catch (MongoBulkWriteException ex)
{
throw new DataBaseWritingException(ex.Message, ExceptionCodeConstants.DataBaseWritingExceptionCode);
}
}
}
不幸的是,zonierList 中有超过 30000 个元素,它在 CosmosDb 上引发以下异常:
未处理的异常:MongoDB.Driver.MongoCommandException:命令插入失败:消息:{“错误”:[“请求率很大”]}
根据文档,这是与 Cosmos 上的 RU / sec 相关的问题。当然,一个简单的方法是增加它,但这不是我想做的。
是否有一种简单明了的方法来重构该方法,允许我们在不破坏 CosmosDb 的 400 RU/秒的情况下插入数据。
【问题讨论】:
标签: c# mongodb azure azure-cosmosdb