1

在一系列“修改记录”操作中,我很难将数据上传到我的 CloudKit 容器。我的应用程序中有一个“上传器”功能,可以使用大量用户数据填充 CloudKit 私有数据库。CKModifyRecordsOperations在上传之前,我将记录分批成多个,每次操作最多 300 条记录。当我用一点数据(甚至不到 50MB)执行此操作时,可能需要数十分钟才能完成简单的上传。这包括一个强大的重试逻辑,该逻辑CKErrorRetryAfterKey从任何超时操作中获取密钥并在延迟后重放它们(之后经常发生)。

我检查了 CloudKit 仪表板,对于容器的遥测部分,“服务器延迟”似乎非常高(95% 的百分位数超过 100,000)。它还表明过去几天的“平均请求大小”平均为 150KB,因为我一直在对此进行测试,这看起来并不多,但服务器响应时间平均每个操作为 10 秒!这似乎超级慢。

我尝试过限制请求,因此一次只发送 20 个修改操作,但这似乎没有帮助。我对每个记录类型的“记录名称”字段都有“查询”索引,在记录类型上的一些自定义字段(尽管不是全部)上有“查询、可搜索、可排序”。CKModifyRecordsOperations 配置将“qualityOfService”设置为“userInitiated”。但这似乎无济于事。我不确定我还能尝试什么来改善“上传”时间(下载记录似乎按预期发生)。

还有什么我可以尝试改善上传几千条记录所需的时间吗?还是我无法控制?

4

0 回答 0