Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/api/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Api 将140k个对象导入Parse.com_Api_Rest_Parse Platform - Fatal编程技术网

Api 将140k个对象导入Parse.com

Api 将140k个对象导入Parse.com,api,rest,parse-platform,Api,Rest,Parse Platform,我试图用140k对象填充Parse中的数据类。因为我有地质点,所以无法通过web界面导入。他们建议的RESTAPI不允许您使用一个API调用创建多个对象。所以,看起来我将进行140k API调用 现在,我有一个包含140k行格式正确的JSON的文件,等待导入到Parse中 我曾在我的Web服务器上尝试过用PHP中的curl实现这一点。我在脚本停止运行之前导入了5-10k对象。我尝试将其添加到PHP文件中- ignore_user_abort(true); set_time_limit(0);

我试图用140k对象填充Parse中的数据类。因为我有地质点,所以无法通过web界面导入。他们建议的RESTAPI不允许您使用一个API调用创建多个对象。所以,看起来我将进行140k API调用

现在,我有一个包含140k行格式正确的JSON的文件,等待导入到Parse中

我曾在我的Web服务器上尝试过用PHP中的curl实现这一点。我在脚本停止运行之前导入了5-10k对象。我尝试将其添加到PHP文件中-

ignore_user_abort(true);
set_time_limit(0);
但这不起作用。所以我想也许我可以在Javascript中有更多的控制,在崩溃之前再次导入5-10k对象。我每50个对象添加一个超时暂停,但它仍然崩溃。我尝试过在进行下一个API调用之前等待一个成功的响应,或者同时运行它们,但这并没有什么区别


无论如何,我的问题是如何最有效地进行140k REST API调用,而不会崩溃。

您可以使用Parse的JSON导入器(而不是CSV)导入地质点。有关详细信息,请参阅。

即使您可以使用JSON导入器导入复杂布局,该导入器也会对大文件产生som问题

您可以在一次调用中创建多个对象。使用
/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
如果您对一切顺利与否不感兴趣,也就是“开火并忘记”的话,那么就不需要了


祝你好运

我尝试了这个,得到了响应
{“code”:154,“error:”批处理请求中的命令太多。限制为50“}
。3000个电话比150k少,但仍然让人望而生畏。我也在试着让进口商工作。你找到解决办法了吗?批处理似乎仍然限于50个请求,对于大型数据集,这可能会很麻烦。