我正在尝试使用140k对象填充Parse中的数据类。因为我有GeoPoints,所以无法通过Web界面导入。他们建议的REST API不允许您使用一个API调用创建多个对象。所以,看起来我将进行140k API调用。
现在,我有一个140k行正确形成JSON的文件,等待导入Parse。
我已尝试在我的网络服务器上使用curl在PHP中执行此操作。我在脚本停止运行之前导入了5-10k个对象。我尝试将其添加到PHP文件 -
ignore_user_abort(true);
set_time_limit(0);
但是这没用。所以我想也许我在Javascript中有更多的控制权,再次在崩溃之前导入了5-10k个对象。我每50个对象添加一个超时暂停,它仍然崩溃。我已经尝试在进行下一次API调用之前等待成功响应,或者同时运行它们,并且它没有任何区别。
无论如何,我的问题是如何最有效地进行140k REST API调用,而不会崩溃。
答案 0 :(得分:2)
您可以使用Parse的JSON导入程序(而不是CSV)导入地理输出。有关详细信息,请参阅Importing Data。
答案 1 :(得分:1)
即使您可以使用JSON导入程序导入复杂的布局,该导入程序也会出现大文件的问题
您可以在一次通话中创建多个对象。使用/1/batch
,请参阅下面的示例用法;
{
"requests": [{
"method": "POST",
"path": "/1/classes/YOURCLASS",
"body": {
"your": "parameters",
"live": "here"
}
}, {
"method": "POST",
"path": "/1/classes/YOURCLASS",
"body": {
"second": "request",
"parameters": "here"
}
}]
}
我已成功导入大约10k行,没有任何问题,我确实通过终端运行它,但是使用PHP和cURL,这是cURL调用以供参考;
$headers = array(
'X-Parse-Application-Id: APPID',
'X-Parse-REST-API-Key: RESTKEY',
'Content-type: application/json'
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://api.parse.com/1/batch');
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_POSTFIELDS, $json);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$ret = curl_exec($ch);
CURLOPT_RETURNTRANSFER
如果你不感兴趣,如果一切顺利,也就是“火与忘记”,则没有必要。