ホームページ  >  記事  >  バックエンド開発  >  Laravel が非同期プロセスを実行するためにスーパーバイザーを実装する方法の詳細な説明

Laravel が非同期プロセスを実行するためにスーパーバイザーを実装する方法の詳細な説明

*文
*文オリジナル
2018-01-03 13:54:522015ブラウズ

この記事では、PHP フレームワーク Laravel で非同期プロセスを実行するためのスーパーバイザーを実装する方法を主に紹介します。この記事の紹介は、必要な人にとっては一定の参考と学習価値があると思います。以下を見てください。お役に立てれば幸いです。

問題の説明

Laravel フレームワークを使用して動的 Web ページを実装する場合、一部の操作で大量の計算が必要な場合、ユーザー エクスペリエンスに影響を与えないようにするために、多くの場合、非同期処理を使用する必要があります。これは、supervisor と laravel に付属するキューを使用して実装されます。詳細な紹介を見てみましょう:

Supervisor

Supervisor (http://supervisord.org) は、Python で書かれたプロセス管理ツールで、起動、再起動、シャットダウンに簡単に使用できます。プロセス (Python プロセスだけではありません)。単一のプロセスを制御するだけでなく、複数のプロセスを同時に開始およびシャットダウンすることもできます。たとえば、残念ながら、サーバーの問題によりすべてのアプリケーションが強制終了される場合、スーパーバイザを使用してすべてのアプリケーションを開始できます。コマンドを 1 つずつ入力するのではなく、同時に起動します。

方法は次のとおりです

1. スーパーバイザーをインストールします

apt-get install supervisor

インストール後にスーパーバイザーを再起動します: service supervisor restart

2. スーパーバイザー管理はここで設定されます。指示、 laravelキューの監視を開始するには使用します。プロセス数とエラーログアドレスも指定します。

3. キューの設定

キューのコードを記述する前に、キューの設定場所を config/queue.PHP に設定する必要があります。ここでは、データベース、Redis、などのキュードライバーを設定する必要があります。同期などさまざまなオプションには対応する構成があります。ここでは構成に Redis を選択します。

例:

[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

4. 非同期プログラムを作成します

app/job ディレクトリに非同期プログラムを作成し、独自の新しいクラスを作成します。例: Shutdown、コンストラクターとハンドル関数を作成します。クラスの。ハンドル関数はプログラムの計算処理です。


5. 非同期関数の実行

'redis' => [
  'driver' => 'redis',
  'connection' => env('QUEUE_CONNECTION', 'default'),
  'queue' => 'wordtohtml',
  'expire' => 600,
 ],
この命令を使用して非同期プログラムを作成します。

関連する推奨事項:

laravelでのPHPアルティザン移行の問題の概要

Laravelのタスクスケジューリングコンソールの詳細な説明

Laravelのタスクスケジュールの詳細な説明ravel は .env 設定を変更します背景

以上がLaravel が非同期プロセスを実行するためにスーパーバイザーを実装する方法の詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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