この記事では、PHP フレームワーク Laravel で非同期プロセスを実行するためのスーパーバイザーを実装する方法を主に紹介します。この記事の紹介は、必要な人にとっては一定の参考と学習価値があると思います。以下を見てください。
問題の説明
Laravel フレームワークを使用して動的 Web ページを実装する場合、一部の操作で大量の計算が必要な場合、ユーザー エクスペリエンスに影響を与えないようにするために、多くの場合、非同期メソッドを使用する必要があります。それらを処理します。これは、supervisor と laravel に付属するキューを使用して実装されます。詳細な紹介を見てみましょう:
Supervisor
Supervisor (http://supervisord.org) は、Python で書かれたプロセス管理ツールで、起動、再起動、シャットダウンに簡単に使用できます。プロセス (Python プロセスだけではありません)。単一のプロセスを制御するだけでなく、複数のプロセスを同時に開始およびシャットダウンすることもできます。たとえば、残念ながら、サーバーの問題によりすべてのアプリケーションが強制終了される場合、スーパーバイザを使用してすべてのアプリケーションを開始できます。コマンドを 1 つずつ入力するのではなく、同時に起動します。
方法は次のとおりです
1. スーパーバイザーをインストールします
インストール後にスーパーバイザーを再起動します:
service supervisor restart
りー
ここで設定します スーパーバイザー管理プロセスコマンドは、laravelキューの監視を開始するために使用されます。プロセス数とエラーログアドレスも指定します。
3. キューの設定
キューのコードを記述する前に、キューの設定場所を config/queue.PHP に設定する必要があります。ここでは、データベース、Redis、などのキュードライバーを設定する必要があります。同期などさまざまなオプションには対応する構成があります。ここでは構成に Redis を選択します。
apt-get install supervisor
4. 非同期プログラムを作成します
非同期プログラムは app/job ディレクトリに作成され、独自の新しいクラスを作成します。例: Shutdown、クラスのコンストラクターとハンドル関数。ハンドル関数はプログラムの計算処理です。
5. 非同期関数の実行
[program:laravel] process_name=%(program_name)s_%(process_num)02d command=php {{ app.root }}/artisan queue:listen autostart=true autorestart=true user=www-data numprocs=1 redirect_stderr=true stdout_logfile={{ app.root }}/storage/logs/queque.log
以上がLaravelフレームワークで非同期処理を実行するスーパーバイザを実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。