検索
ホームページPHPフレームワークThinkPHPThinkPHP5 で thinkphp-queue を使用しますか?

thinkphp フレームワーク の次のチュートリアル コラムでは、ThinkPHP5 で thinkphp-queue を使用する方法を紹介します。

ThinkPHP5 で thinkphp-queue を使用しますか?

最近、編集者は、ThinkPHP5.0 フレームワークを使用するときに php-queue の使い方を知らないグループの友人からメッセージを受け取りました (本当に恥ずかしいことです。これについてはインターネット上に多くのコメントがあります) チュートリアル)。はは、参考にしなくても大丈夫です、詳しく説明していきます~~ キューとは何ですか?キューは何を解決しますか?キューのシナリオにはどのようなものがありますか? ...等々. 開発者はまずこれらの問題を自分で理解する必要があります. また、このケースは ThinkPHP フレームワーク上で特定の操作のみを実行します。

1. thinkphp-queue をインストールします

インストールには Composer を使用し、プロジェクトのルート ディレクトリに切り替えて、次を実行することをお勧めします:

composer require topthink/think-queue

2. メッセージ キューのストレージ環境を構成する

図に示すように、構成ファイルは application\extra\queue.php にあります。

Redis ドライバーを使用します。Redis 環境がインストールされていない場合は、ご自身でインストールしてください。非常に簡単です。または、図に示すように、他の種類のドライバーを使用することもできます。 ThinkPHP5 で thinkphp-queue を使用しますか?

#3. タスクの作成

ThinkPHP5 で thinkphp-queue を使用しますか?インデックス モジュールの下に Index.php ファイルがあり、queue という名前のメソッドを作成します (このようにする必要がありますか? もちろんそうではありません。このチュートリアルは単なる例です。図に示すように、新しいモジュールを作成し、メソッド名は他のものにすることもできます。

ThinkPHP5 で thinkphp-queue を使用しますか?

4. タスク メッセージの消費と削除処理

ThinkPHP5 で thinkphp-queue を使用しますか?図に示すように、消費モードの処理に使用されるジョブ ファイルをインデックス モジュールの下に作成します。

Demo クラスの下に Fire を作成します。メソッド。これは、デフォルトでメッセージ キューによって呼び出されるメソッドです。図に示すように:

ThinkPHP5 で thinkphp-queue を使用しますか?

# 上記は、完了したタスク (「プッシュ」消費) の作成です。

ブラウザまたはターミナルで、index/queue.html メソッドを実行して作成とプッシュを完了します。タスクの消費に関しては、コマンドを参照して、ターミナルでプロジェクトのルート ディレクトリに切り替えることができます: ThinkPHP5 で thinkphp-queue を使用しますか?

5. タスクを監視し、


php think queue:listen
php think queue:work –daemon(不加–daemon为执行单个任务)

を実行します。特定のオプションのパラメーターについては、コマンドを入力し、-help を追加して表示できます。


は一緒に使用できます。スーパーバイザがプロセスが常駐していることを確認します

1.1 コマンド モード

queue:subscribe コマンド [As 2017 年 2 月 15 日の作成者はまだこのモードを実装していません。スキップ]

  • queue:work command

  • work command: このコマンドは作業プロセスを開始しますメッセージキューを処理します。
  • php think queue:work --queue helloJobQueue

    queue:listen command

  • listen コマンド: このコマンドは listen 親プロセスを作成し、親プロセスは
  • proc_open('php think queue :work')

    を使用して、メッセージ キューを処理し、ワーク プロセスの実行時間を制限するためのワーク サブプロセスを作成します。

    php think queue:listen --queue helloJobQueue

2.2 コマンド ライン パラメータ

作業モード

php think queue:work \
--daemon            //是否循环执行,如果不加该参数,则该命令处理完下一个消息就退出
--queue  helloJobQueue  //要处理的队列的名称
--delay  0 \        //如果本次任务执行抛出异常且任务未被删除时,设置其下次执行前延迟多少秒,默认为0
--force  \          //系统处于维护状态时是否仍然处理任务,并未找到相关说明
--memory 128 \      //该进程允许使用的内存上限,以 M 为单位
--sleep  3 \        //如果队列中无任务,则sleep多少秒后重新检查(work+daemon模式)或者退出(listen或非daemon模式)
--tries  2          //如果任务已经超过尝试次数上限,则触发‘任务尝试次数超限’事件,默认为0
  • リッスン モード

    php think queue:listen \
    --queue  helloJobQueue \   //监听的队列的名称
    --delay  0 \         //如果本次任务执行抛出异常且任务未被删除时,设置其下次执行前延迟多少秒,默认为0
    --memory 128 \       //该进程允许使用的内存上限,以 M 为单位
    --sleep  3 \         //如果队列中无任务,则多长时间后重新检查,daemon模式下有效
    --tries  0 \         //如果任务已经超过重发次数上限,则进入失败处理逻辑,默认为0
    --timeout 60         //创建的work子进程的允许执行的最长时间,以秒为单位
  • リッスン モードでは、
  • --deamon

    パラメータが含まれていないことがわかります。理由は以下で説明します

    Linux は、tp5 を例としてデーモン プロセスを開始します

  • nohup php think queue:work --daemon --queue 任务名称 &
     nohup php think queue:work --daemon --queue 任务名称 &
Linux のタスクの数を確認するには、次のように入力します。jobs -l


ターミナル内

以上がThinkPHP5 で thinkphp-queue を使用しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事はoschinaで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。
ThinkPHPの組み込みテストフレームワークの主な機能は何ですか?ThinkPHPの組み込みテストフレームワークの主な機能は何ですか?Mar 18, 2025 pm 05:01 PM

この記事では、ThinkPHPの組み込みテストフレームワークについて説明し、ユニットや統合テストなどの主要な機能と、早期のバグ検出とコード品質の向上を通じてアプリケーションの信頼性を高める方法について強調しています。

リアルタイムの株式市場データフィードを構築するためにThinkPhpを使用する方法は?リアルタイムの株式市場データフィードを構築するためにThinkPhpを使用する方法は?Mar 18, 2025 pm 04:57 PM

記事では、リアルタイムの株式市場データフィードにThinkPhpを使用して、セットアップ、データの正確性、最適化、セキュリティ対策に焦点を当てて説明します。

サーバーレスアーキテクチャでThinkPhpを使用するための重要な考慮事項は何ですか?サーバーレスアーキテクチャでThinkPhpを使用するための重要な考慮事項は何ですか?Mar 18, 2025 pm 04:54 PM

この記事では、パフォーマンスの最適化、ステートレス設計、セキュリティに焦点を当てたサーバーレスアーキテクチャでThinkPhpを使用するための重要な考慮事項について説明します。コスト効率やスケーラビリティなどの利点を強調しますが、課題にも対処します

ThinkPhpマイクロサービスでサービスの発見と負荷分散を実装する方法は?ThinkPhpマイクロサービスでサービスの発見と負荷分散を実装する方法は?Mar 18, 2025 pm 04:51 PM

この記事では、セットアップ、ベストプラクティス、統合方法、および推奨ツールに焦点を当てたThinkPhpマイクロサービスにサービスの発見と負荷分散の実装について説明します。[159文字]。

ThinkPhpの依存関係噴射コンテナの高度な機能は何ですか?ThinkPhpの依存関係噴射コンテナの高度な機能は何ですか?Mar 18, 2025 pm 04:50 PM

ThinkPHPのIOCコンテナは、PHPアプリで効率的な依存関係管理のための怠zyなロード、コンテキストバインディング、メソッドインジェクションなどの高度な機能を提供します。

リアルタイムのコラボレーションツールを構築するためにThinkPhpを使用する方法は?リアルタイムのコラボレーションツールを構築するためにThinkPhpを使用する方法は?Mar 18, 2025 pm 04:49 PM

この記事では、ThinkPhpを使用してリアルタイムのコラボレーションツールを構築し、セットアップ、Websocket統合、セキュリティベストプラクティスに焦点を当てて説明します。

SaaSアプリケーションを構築するためにThinkPhpを使用することの主な利点は何ですか?SaaSアプリケーションを構築するためにThinkPhpを使用することの主な利点は何ですか?Mar 18, 2025 pm 04:46 PM

ThinkPhpは、軽量のデザイン、MVCアーキテクチャ、および拡張性を備えたSaaSアプリに利益をもたらします。スケーラビリティを向上させ、開発を速め、さまざまな機能を通じてセキュリティを改善します。

ThinkPhpとRabbitmqを使用して分散タスクキューシステムを構築する方法は?ThinkPhpとRabbitmqを使用して分散タスクキューシステムを構築する方法は?Mar 18, 2025 pm 04:45 PM

この記事では、ThinkPhpとRabbitMQを使用して分散タスクキューシステムの構築を概説し、インストール、構成、タスク管理、およびスケーラビリティに焦点を当てています。重要な問題には、Immedのような一般的な落とし穴を避けるための高可用性の確保が含まれます

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

MantisBT

MantisBT

Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

PhpStorm Mac バージョン

PhpStorm Mac バージョン

最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい