0

私は巨大なPHPアプリケーションである多くのWebサービスを使用しています。通常、それらのすべてが 10 秒以内にデータを送信してくれますが、応答しない人がいて、すべてのプロセスがフリーズすることがあります。

だから私の質問は、定義された時間後に応答しない場合、すべてのシステムをフリーズせずに PHP で SOAP Web サービスを使用するにはどうすればよいかということです。

4

4 に答える 4

3

PHP は、マルチスレッドと非同期プログラミングをサポートしていません。ただし、forkこの SOAP 要求を実行する別のプロセスを実行できます。もちろん、この新しいプロセスからクライアントに一部のデータを送信することはできませんが、たとえばその応答を DB に書き込むことはできます。

于 2012-04-19T12:29:37.300 に答える
2

ソリューションは、マルチスレッドpenarturとは関係ありません。唯一行うべきことは、 nutrijaが示唆するように、ノンブロッキング ストリームを使用し、select() 関数を使用して I/O 多重化を使用することです。既に実装されているソリューションの 1 つがこのリンクにあります: Making PHP's SOAP client asynchronous

于 2014-06-23T09:38:24.040 に答える
1

JavaScript を使用して、SOAP 要求を行う別の PHP ファイルへの AJAX 呼び出しを行うことができます。

于 2012-04-19T12:47:11.540 に答える
-1

stream_set_blockingを使用して、http/https ストリームを非ブロッキング モードに設定できます。

于 2012-04-19T12:46:42.900 に答える