Supervisor を使用して ThinkPHP6 キューを管理するにはどうすればよいですか?
Jun 12, 2023 am 08:51 AMWeb アプリケーションの継続的な開発では、アプリケーションの安定性と可用性を維持するために多數(shù)のタスクを処理する必要があります。キュー システムの使用は 1 つの解決策です。 ThinkPHP6 は、タスクを管理するための組み込みのキュー システムを提供します。ただし、多數(shù)のタスクを処理するには、より適切なキュー管理が必要です。これはスーパーバイザーを使用して実現(xiàn)できます。
この記事では、Supervisor を使用して ThinkPHP6 キューを管理する方法を紹介します。その前に、いくつかの基本概念を理解する必要があります。
- キュー システム
キュー システムは、タスクを直接処理するのではなくキューに追加することで、タスクを非同期に処理する方法です。タスクがキューに追加されると、Web アプリケーションの長期的なブロックを回避するために、そのタスクを別のワーカーに割り當(dāng)てることができます。キュー システムは、タスクの一部の複雑な操作を完了することもできます。 - タスク
キュー システムでは、タスクは実行する必要がある作業(yè)です。非同期で実行する必要があるコードをタスクにパッケージ化し、そのタスクをキューに追加して後続の処理を待つことができます。 PHP フレームワークのキュー コンポーネントやサードパーティ ライブラリを使用して、Laravel のキュー コンポーネントや Beanstalkd などのタスクを管理できます。 - スーパーバイザー
スーパーバイザーは、キュー ワーカーを含む 1 つ以上のプロセスを監(jiān)視および制御できるプロセス制御システムです。スーパーバイザは、キュー システムをより安定して耐久性のあるものにすることができます。スーパーバイザーを使用すると、タスクが失敗したときにワーカーを自動的に再起動でき、Web アプリケーションの再起動後もキューのタスクを確実に処理し続けることができます。
これらの基本概念を理解した後、Supervisor を使用して ThinkPHP6 キューを管理する方法を紹介します。
ステップ 1: スーパーバイザーのインストール
キュー管理にスーパーバイザーを使用するには、まずスーパーバイザーをインストールする必要があります。 Ubuntu システムでは、次のコマンドを使用してインストールできます。
sudo apt-get install supervisor
CentOS システムでは、次のコマンドを使用してインストールできます。
sudo yum install supervisor
インストールが完了したら、次のコマンドを使用してスーパーバイザを起動します。
sudo systemctl start supervisor
同時に、管理するために、構(gòu)成ファイル /etc/supervisor/conf.d/
に新しい構(gòu)成ファイルを作成する必要もあります。キューワーカー。このディレクトリには、laravel-worker.conf
などの任意の名前のファイルを作成できます。次に、このファイルを編集する方法について説明します。
ステップ 2: スーパーバイザー構(gòu)成ファイルを編集する
スーパーバイザー構(gòu)成ファイルを編集し、ワーカーをスーパーバイザー監(jiān)視リストに追加します。次のコマンドを使用して、作成した構(gòu)成ファイルを編集できます:
sudo nano /etc/supervisor/conf.d/laravel-worker.conf
次の構(gòu)成をファイルに追加します:
[program:laravel-worker] process_name=%(program_name)s_%(process_num)02d directory=/var/www/laravel #修改為你的項目目錄 command=php /var/www/laravel/artisan queue:work autostart=true autorestart=true user=www-data #修改為你的Web服務(wù)器運行用戶 numprocs=8 #工作者數(shù)量,此處建議設(shè)置為CPU核心數(shù)2-4倍 redirect_stderr=true stdout_logfile=/var/www/laravel/storage/logs/worker.log #修改為你的日志文件位置
上記の構(gòu)成をファイルに追加した後、次のコマンドを?qū)g行して、スーパーバイザ構(gòu)成ファイルをリロードします。
sudo supervisorctl reread sudo supervisorctl update
これにより、スーパーバイザがキュー ワーカーを開始して管理できるようになります。次のコマンドを使用して、スーパーバイザーによって開始されたすべてのプロセスを表示できます。
sudo supervisorctl status
ステップ 3: キュー タスクをテストする
これで、スーパーバイザーを使用してキュー ワーカーが正常に開始されました。次に、キュー タスクをテストする必要があります。まず、アプリケーションでキューが構(gòu)成されていることを確認(rèn)してください。
テスト タスクをどこかに追加し、キューが動作し始めるようにします。たとえば、電子メール送信タスクを作成します:
<?php namespace appqueue; use thinkqueueJob; class SendEmail { public $user; public function __construct($user) { $this->user = $user; } public function fire(Job $job, $data) { //發(fā)送Email的代碼 if (Math.random() < 0.5) { // 處理失敗 $job->release(5);// 5秒后重試 } else { // 成功處理 $job->delete(); } } }
コントローラーにメソッドを追加し、タスクを追加します:
<?php namespace appcontroller; use thinkController; use thinkqueueQueue; class Email extends Controller { public function index() { $user = ['email' => 'test@test.com', 'name' => 'test']; $job = new ppqueueSendEmail($user); app('queue')->push($job); } }
このようにして、Supervisor を使用して ThinkPHP6 キューを管理できます。 。キュー システムについて詳しく知りたい場合は、公式ドキュメントを読むことができます。この記事が Web アプリケーションを正常に実行するのに役立つことを願っています。
以上がSupervisor を使用して ThinkPHP6 キューを管理するにはどうすればよいですか?の詳細(xì)內(nèi)容です。詳細(xì)については、PHP 中國語 Web サイトの他の関連記事を參照してください。

ホットAIツール

Undress AI Tool
脫衣畫像を無料で

Undresser.AI Undress
リアルなヌード寫真を作成する AI 搭載アプリ

AI Clothes Remover
寫真から衣服を削除するオンライン AI ツール。

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中國語版
中國語版、とても使いやすい

ゼンドスタジオ 13.0.1
強(qiáng)力な PHP 統(tǒng)合開発環(huán)境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ThinkPHP プロジェクトを?qū)g行するには、Composer をインストールし、Composer を使用してプロジェクトを作成し、プロジェクト ディレクトリに入り、php bin/consoleserve を?qū)g行し、http://localhost:8000 にアクセスしてようこそページを表示する必要があります。

ThinkPHP には、さまざまな PHP バージョン向けに設(shè)計された複數(shù)のバージョンがあります。メジャー バージョンには 3.2、5.0、5.1、および 6.0 が含まれますが、マイナー バージョンはバグを修正し、新機(jī)能を提供するために使用されます。最新の安定バージョンは ThinkPHP 6.0.16 です。バージョンを選択するときは、PHP バージョン、機(jī)能要件、コミュニティ サポートを考慮してください。最高のパフォーマンスとサポートを得るには、最新の安定バージョンを使用することをお勧めします。

ThinkPHP フレームワークをローカルで実行する手順: ThinkPHP フレームワークをローカル ディレクトリにダウンロードして解凍します。 ThinkPHP ルート ディレクトリを指す仮想ホスト (オプション) を作成します。データベース接続パラメータを構(gòu)成します。 Webサーバーを起動します。 ThinkPHP アプリケーションを初期化します。 ThinkPHP アプリケーションの URL にアクセスして実行します。

Laravel フレームワークと ThinkPHP フレームワークのパフォーマンスの比較: ThinkPHP は、最適化とキャッシュに重點を置いて、一般に Laravel よりもパフォーマンスが優(yōu)れています。 Laravel は優(yōu)れたパフォーマンスを発揮しますが、複雑なアプリケーションの場合は、ThinkPHP の方が適している可能性があります。

ThinkPHP のインストール手順: PHP、Composer、および MySQL 環(huán)境を準(zhǔn)備します。 Composer を使用してプロジェクトを作成します。 ThinkPHP フレームワークと依存関係をインストールします。データベース接続を構(gòu)成します。アプリケーションコードを生成します。アプリケーションを起動し、http://localhost:8000 にアクセスします。

ThinkPHP は、キャッシュ メカニズム、コードの最適化、並列処理、データベースの最適化などの利點を備えた高性能 PHP フレームワークです。公式パフォーマンステストでは、1秒あたり10,000以上のリクエストを処理できることが示されており、実際のアプリケーションではJD.comやCtripなどの大規(guī)模なWebサイトやエンタープライズシステムで広く使用されています。

開発の提案: API 開発に ThinkPHP フレームワークを使用する方法 インターネットの継続的な発展に伴い、API (アプリケーション プログラミング インターフェイス) の重要性がますます高まっています。 API は、異なるアプリケーション間の通信の橋渡しとなるもので、データの共有や関數(shù)の呼び出しなどを?qū)g現(xiàn)し、開発者に比較的簡単かつ迅速な開発手法を提供します。優(yōu)れた PHP 開発フレームワークである ThinkPHP フレームワークは、効率的でスケーラブルで使いやすいです。

ThinkPHP プロジェクトをデプロイするには、次の手順を?qū)g行する必要があります: 1. デプロイメント ディレクトリを作成する; 2. プロジェクト ファイルをアップロードする; 3. データベースを構(gòu)成する; 4. アプリケーション モードを運用モードに設(shè)定する; 5. 関連コマンドを?qū)g行する; 6. 仮想ファイルを作成するホスト; 7. プロジェクトにアクセスします??紤]事項には、適切な権限の設(shè)定、ブラウザーのキャッシュのクリア、定期的なバックアップなどが含まれます。
