ホームページ  >  記事  >  バックエンド開発  >  PHPの非同期実行の問題

PHPの非同期実行の問題

WBOY
WBOYオリジナル
2016-06-23 14:39:06890ブラウズ

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 でイベント処理プログラムを作成することができます。

これを見ると、イベントベースの処理言語の利点が理解できます。 。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。