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);