2

最近、PHPSoapServerを使用するPHPWebサービス用のJavaフロントエンドを作成しました。

私のアプリケーションは長時間実行されるデータ同期を実行しており、PHPから知っていることから、max_execution_time制限のために接続を閉じる準備をしました。

しかし、SoapServerインスタンスが永久に実行されているかのように、エラーが発生することはありません。

ここでの私の最も良い推測は、SoapServerがどのように機能しているかを本当に理解していないということです。それで、誰かがこれにいくつかの光を当てることができますか?SoapServerは影響を受けませんmax_execution_timeか?

編集:私のテストmax_execution_timeでは5分に設定されていますが、私のプログラムは何時間も実行されています。

4

1 に答える 1

4

max_execution_timephp.ini で、または使用して、ini_set()またはスクリプトで 0 に設定されている場合、set_time_limit()制限はありません。これが理由でしょうか?

編集:また、マニュアルでこれに気づきました:

注: set_time_limit() 関数と構成ディレクティブ max_execution_time は、スクリプト自体の実行時間にのみ影響します。system() を使用したシステム コール、ストリーム操作、データベース クエリなど、スクリプトの実行以外で発生するアクティビティに費やされた時間は、スクリプトの最大実行時間を決定する際には含まれません。これは、測定時間が実数である Windows では当てはまりません。

おそらく、ほとんどの時間がデータのストリーミングやクエリの実行に費やされているため、時間制限にカウントされないため、カットされていない可能性があります.

于 2009-12-11T09:49:25.003 に答える