1

Web サービスから返されたデータが大きくなると、そのデータを処理するのに苦労しています。NuSOAP PHP ライブラリを使用しており、サービスから返されるデータが小さい場合はすべてうまくいきますが、大きくなると内部サーバー エラー 500 に達します。

NuSOAP を使用して結果を配列に解析するデータを取得し、この配列を反復処理してデータをローカルの DDBB にインポートするだけです。派手なものはありません。サービスにはページネーションオプションパラメーターがあり、呼び出しごとに制限されるため、取得できる結果は1000になります....しかし、800レコード程度でエラーに到達します。

初期設定のメモリを増やそうとしましたが、実行時間の制限も増やせませんでした。

私の推測では、問題は、php がデータを解析する頻度とは異なる頻度でデータが送信されることです。ソリューション?この状況ではバッファがうまく機能する可能性がありますが、PHP でこれを実現する方法がわかりません。何かご意見は?

コードは次のとおりです。

$client = new nusoap_client($WSDL);
do {
    $data = $client->call($serviceName, array('GetValuesFrom' => $getValuesFrom,'PW'            => $pw, 'StartIndex' => $startIndex, 'Count' => $count), $ns, $ns);

    // Check there if there are results at all
    if(!$data) {
        $message .= 'No results returned by the service<br>';
    break;
    }

    // Script that imports it to the DDBB       
    require_once('import_into_DDBB.php');

    $pulledData = count($data);
    $totalProcessed += $pulledData;
    $startIndex++;  
}
while($count == $pulledData);
4

0 に答える 0