2

解析中のデータ クラスに 140k オブジェクトを設定しようとしています。GeoPoints があるため、Web インターフェイスからインポートできません。彼らが提案する REST API では、1 回の API 呼び出しで複数のオブジェクトを作成することはできません。つまり、14 万回の API 呼び出しを行うことになるようです。

現在、正しく形成された 14 万行の JSON を含むファイルがあり、Parse にインポートされるのを待っています。

WebサーバーのPHPでcurlを使用してこれを試しました。スクリプトの実行が停止する前に、5 ~ 10,000 個のオブジェクトをインポートしました。これをPHPファイルに追加してみました-

ignore_user_abort(true);
set_time_limit(0);

しかし、これはうまくいきませんでした。そのため、Javascript をもっと制御できるのではないかと考え、クラッシュする前に 5 ~ 10,000 個のオブジェクトをインポートしました。50 オブジェクトごとにタイムアウト一時停止を追加しましたが、それでもクラッシュしました。次の API 呼び出しを行う前に成功の応答を待つか、それらすべてを同時に実行しようとしましたが、違いはありません。

とにかく、私の質問は、クラッシュすることなく、140k REST API 呼び出しを最も効率的に行う方法です。

4

2 に答える 2

2

(CSV の代わりに) Parse の JSON インポーターを使用してジオポイントをインポートできます。詳細については、データのインポートを参照してください。

于 2013-02-22T19:19:06.663 に答える
1

JSON インポーターを使用して複雑なレイアウトをインポートできる場合でも、そのインポーターには大きなファイルに関するいくつかの問題があります

1 回の呼び出しで複数のオブジェクトを作成できます。以下の使用/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すべてがうまくいったかどうか、別名「ファイア アンド フォーゲット」に関心がない場合は、必要ありません。

幸運を!

于 2013-02-25T07:38:55.343 に答える