将140k对象导入Parse.com

时间:2013-02-22 03:06:16

标签: api rest parse-platform

我正在尝试使用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调用,而不会崩溃。

2 个答案:

答案 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如果你不感兴趣,如果一切顺利,也就是“火与忘记”,则没有必要。

祝你好运!