ホームページ >バックエンド開発 >PHPチュートリアル >PHPの非同期実行の問題
PHP が exec() メソッドを実行するとき、コードの残りの実行を続ける前に、exec メソッドが完全に実行されるまで待機します
exec() は長時間実行されるため、ページは常に待機状態、
exec が実行されるまで待ちます。その後更新されます、
それで、exec が完了するのを待たずにページを更新できるように、exec をバックグラウンドで実行させる方法はありますか?
実行されたコマンドの後に &
を追加してみますが、すべてのコマンドがバックグラウンドで実行できるわけではありません
実行されたコマンドの後に &
を追加してみますが、機能しません すべてコマンドはバックグラウンドで実行できます
試してみましたが、うまくいきませんでした
ページ上にボタンがあります
1. クリックしてDBを更新します
2. DBが更新された後、ページが更新されます
3ページのオンロード時に AJAX を使用してバックグラウンドでメソッドを実行します。このメソッドの機能は、HTTP リクエストをサーバー 2 に送信することです
4. サーバー 2 が 3 からリクエストを受信すると、exec メソッドが実行されます。サーバー 2 のディレクトリにある Bat ファイル (Java jar パッケージが含まれています)
4 の実行に時間がかかりすぎたため、ポストが生成されました。 。 。
これは、サーバー側でイベントキューを作成し、サーバー 2 が 3 のリクエストを受信したときに、それにイベントを追加し、サーバー 2 でイベント処理プログラムを作成することができます。
これを見ると、イベントベースの処理言語の利点が理解できます。 。