ホームページ  >  記事  >  バックエンド開発  >  PHPフレームワークLaravelで非同期処理を実行するスーパーバイザーを実装する

PHPフレームワークLaravelで非同期処理を実行するスーパーバイザーを実装する

陈政宽~
陈政宽~オリジナル
2017-06-28 13:42:251438ブラウズ

この記事では主に PHP フレームワークについて紹介します この記事の紹介は非常に詳しく書かれているので、必要な方にとっては十分に参考になると思います。来て見てください。

問題の説明

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 ディレクトリに非同期プログラムを作成し、独自の新しいクラスを作成します。例: シャットダウン、
コンストラクター

とハンドルを作成します。クラスの関数。ハンドル関数はプログラムの計算処理です。


5. 非同期関数の実行

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

概要

以上がPHPフレームワークLaravelで非同期処理を実行するスーパーバイザーを実装するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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