gpt4 book ai didi

javascript - 解析服务器 XMLHttpRequest 在保存大型数据集时失败

转载 作者:行者123 更新时间:2023-12-03 04:51:42 27 4
gpt4 key购买 nike

我正在运行 Parse-Server v2.2.12,并尝试运行一个作业来提取巨大的数据集(约 13k 条记录),对其进行处理,然后将每条记录保存到我的 Parse 数据库中的表中。我的服务器似乎无法接受所有保存请求。对于大约 60% 的保存请求,我收到 code 100 错误,并显示以下消息:XMLHttpRequest failed:“Unable to connect to the Parse API”

我的代码看起来像这样:

makeHttpRequest('GET', endpoint).then( (httpResponse) => {

const dataArray = httpResponse.body.array;
const Class = Parse.Object.extend('className');

const savePromises = _.map(dataArray, (jsonObject) => {

const object = new Class();
object.set(IdKey, "" + jsonObject.id);
object.set(nameKey, jsonObject.name);
return object.save(null, {useMasterKey: true});
});

return Parse.Promise.when(savePromises);
});

我尝试将数组分成三份(约 4.5k 条记录)并使用 promise.then 顺序执行每组保存,但我仍然得到:

{
"code": 100,
"message": "XMLHttpRequest failed: \"Unable to connect to the Parse API\""
}

更新:将此作业迁移到我们启用 https 的生产服务器后,我收到了略有不同的错误消息,并且更多保存已完成。我怀疑由于我们的生产服务器的额外容量,更多的保存完成。新错误如下所示:

{
"code": 100,
"message": "XMLHttpRequest failed: {\"UNSENT\":0,\"OPENED\":1,\"HEADERS_RECEIVED\":2,\"LOADING\":3,\"DONE\":4,\"readyState\":4,\"responseText\":\"\",\"responseXML\":\"\",\"status\":504,\"statusText\":null,\"withCredentials\":false}"
}

最佳答案

我通过使用Parse.Object.saveAll(objects)解决了这个问题。现在我一下子保存所有 13k 条记录没有任何问题。代码如下所示:

makeHttpRequest('GET', endpoint).then( (httpResponse) => {

const dataArray = httpResponse.body.array;
const Class = Parse.Object.extend('className');

const allObjects = _.map(dataArray, (jsonObject) => {

const object = new Class();
object.set(IdKey, "" + jsonObject.id);
object.set(nameKey, jsonObject.name);
return object;
});

return Parse.Object.saveAll(allObjects, {useMasterKey: true});
});

现在一切似乎都运行良好。

关于javascript - 解析服务器 XMLHttpRequest 在保存大型数据集时失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42632447/

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