目次
queue:subscribe コマンド [As 2017 年 2 月 15 日の作成者はまだこのモードを実装していません。スキップ]
作業モード
ホームページ PHPフレームワーク ThinkPHP ThinkPHP5 で thinkphp-queue を使用しますか?

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

Jul 17, 2020 pm 01:23 PM
thinkphp5

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 サイトの他の関連記事を参照してください。

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

ホット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ヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

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

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

Pagoda に thinkphp5 をデプロイするときにエラーが発生した場合はどうすればよいですか? Pagoda に thinkphp5 をデプロイするときにエラーが発生した場合はどうすればよいですか? Dec 19, 2022 am 11:04 AM

Pagoda に thinkphp5 をデプロイするときに報告されたエラーの解決策: 1. Pagoda サーバーを開き、php pathinfo 拡張機能をインストールして有効にします; 2. 「.access」ファイルをコンテンツ「RewriteRule ^(.*)$index.php」で構成します。 ?s=/$1 [QSA ,PT,L]”; 3. Web サイト管理で、thinkphp の疑似静的機能を有効にするだけです。

thinkphp5 の URL 書き換えが失敗した場合はどうすればよいですか? thinkphp5 の URL 書き換えが失敗した場合はどうすればよいですか? Dec 12, 2022 am 09:31 AM

thinkphp5 の URL 書き換えが機能しない場合の解決策: 1. mod_rewrite.so モジュールが httpd.conf 設定ファイルにロードされているかどうかを確認します; 2.AllowOverride None の None を All に変更します; 3. Apache 設定ファイル .htaccess を「RewriteRule ^」に変更します(.*)$index.php [L,E=PATH_INFO:$1]」を選択して保存します。

thinkphp5でリクエストされたURLを取得する方法 thinkphp5でリクエストされたURLを取得する方法 Dec 20, 2022 am 09:48 AM

thinkphp5 が要求された URL を取得するためのメソッド: 1. "\think\Request" クラスの "$request = Request::instance();" メソッドを使用して、現在の URL 情報を取得します。 2. 組み込みヘルパーを使用します。関数「$request-> url()」を使用して、ドメイン名を含む完全な URL アドレスを取得します。

thinkphp5 post が値を取得できない場合はどうすればよいですか? thinkphp5 post が値を取得できない場合はどうすればよいですか? Dec 06, 2022 am 09:29 AM

TP5 が strpos 関数を使用してヘッダーの content-type 値で app/json 文字列を検索するため、thinkphp5 post は値を取得できません。解決策は、ヘッダーの content-type 値を app/json に設定することです。

thinkphp5のタイトルバーアイコンを削除する方法 thinkphp5のタイトルバーアイコンを削除する方法 Dec 20, 2022 am 09:24 AM

thinkphp5 タイトル バー アイコンを削除する方法: 1. thinkphp5 フレームワーク public で favicon.ico ファイルを見つけます; 2. ファイルを削除するか、別の画像を選択して名前を favicon.ico に変更し、元の favicon.ico ファイルを置き換えます。

thinkphp5 がコントローラーが存在しないというメッセージを表示した場合はどうすればよいですか? thinkphp5 がコントローラーが存在しないというメッセージを表示した場合はどうすればよいですか? Dec 06, 2022 am 10:43 AM

thinkphp5 でコントローラーが存在しないというプロンプトが表示される場合の解決策: 1. 対応するコントローラーの名前空間が正しく記述されているかどうかを確認し、正しい名前空間に変更します; 2. 対応する tp ファイルを開いてクラス名を変更します。

ThinkPHP5 で昨日のデータをクエリする方法 ThinkPHP5 で昨日のデータをクエリする方法 Dec 05, 2022 am 09:20 AM

ThinkPHP5 で昨日のデータをクエリする方法: 1. ThinkPHP5 関連ファイルを開きます; 2. 式「db('table')->whereTime('c_time', 'yesterday')->select();」を使用して昨日のデータをクエリします。 。

thinkphp5 でエラー プロンプトを設定する方法 thinkphp5 でエラー プロンプトを設定する方法 Dec 07, 2022 am 10:31 AM

thinkphp5 でエラー プロンプトを設定する方法: 1. プロジェクト ルート ディレクトリのパブリック フォルダーに入り、index.php エントリ ファイルを開きます; 2. デバッグ モード スイッチに関するコメントを表示します; 3. 「APP_DEBUG」定数の値を調整しますtrue に設定すると、エラー メッセージ プロンプトが表示されます。

See all articles