0

SOAP 呼び出しを繰り返してユーザー データを取得する必要がある PHP アプリケーションがあります (最大 700 回)。とにかく、関数を呼び出す For ループ (最大 700 回繰り返すことができる) があり、その関数が SOAP 呼び出しを行います。しかし、SOAP 呼び出しが 30 秒後にタイムアウトになるというエラーが表示されます。明らかに、最初の SOAP 呼び出しが呼び出し関数に戻った後、次の SOAP 呼び出しを待つ必要があります。では、これを行う方法。コードの一部を次に示します。

//calling function
foreach($xml_apicheck->children() as $child)
{
  getprincipalinfoandemail($endusersconame);
 }
 //called function
 function getprincipalinfoandemail($loginid) {
  //making the SOAP calls and emailing//works for the first time called
   return true;
  }
4

1 に答える 1

1

非常に長い時間をかけずに膨大な数の SOAP リクエストを処理するには、PHP スクリプトをフォークして、生成するプロセスの数に制限を設定するのが最善の策です。各フォークは 1 つの SOAP ステートメントを実行し、それを待ち、最後に終了します。私はこれを行うためのスクリプトを数年書き、それがどのように機能し、どのように実装するかについてのチュートリアル/投稿を書きました。この特定の例は、NuSOAP ライブラリを使用して、Sony Ericsson SMS Gateway (SOAP を使用) を操作する方法です。うまくいけば、これですぐに問題が解決します。

http://jservedio.com/article/3

PS: これは数年前に書かれたものなので、通常の MySQL ライブラリを使用してデータベースに接続している可能性があります。データベースに接続する必要がある場合は、PDO または mysqli を使用していることを確認してください。GET または POST からクエリの入力を取得する場合は特に注意してください。

編集: このすべての機能は必要ないというコメントに応えて、SOAP リクエスト ヘッダーとボディを作成し、cURL を使用して必要な場所に送信することを検討してください。これは応答を待ちます (そして、必要に応じて変数に送信します)。

于 2013-01-10T16:22:50.800 に答える