ホームページ > 記事 > PHPフレームワーク > ThinkPHP5 で thinkphp-queue を使用しますか?
thinkphp フレームワーク の次のチュートリアル コラムでは、ThinkPHP5 で thinkphp-queue を使用する方法を紹介します。
最近、編集者は、ThinkPHP5.0 フレームワークを使用するときに php-queue の使い方を知らないグループの友人からメッセージを受け取りました (本当に恥ずかしいことです。これについてはインターネット上に多くのコメントがあります) チュートリアル)。はは、参考にしなくても大丈夫です、詳しく説明していきます~~ キューとは何ですか?キューは何を解決しますか?キューのシナリオにはどのようなものがありますか? ...等々. 開発者はまずこれらの問題を自分で理解する必要があります. また、このケースは ThinkPHP フレームワーク上で特定の操作のみを実行します。 1. thinkphp-queue をインストールします インストールには Composer を使用し、プロジェクトのルート ディレクトリに切り替えて、次を実行することをお勧めします:composer require topthink/think-queue
2. メッセージ キューのストレージ環境を構成する 図に示すように、構成ファイルは application\extra\queue.php にあります。Redis ドライバーを使用します。Redis 環境がインストールされていない場合は、ご自身でインストールしてください。非常に簡単です。または、図に示すように、他の種類のドライバーを使用することもできます。
#3. タスクの作成インデックス モジュールの下に Index.php ファイルがあり、queue という名前のメソッドを作成します (このようにする必要がありますか? もちろんそうではありません。このチュートリアルは単なる例です。図に示すように、新しいモジュールを作成し、メソッド名は他のものにすることもできます。
4. タスク メッセージの消費と削除処理図に示すように、消費モードの処理に使用されるジョブ ファイルをインデックス モジュールの下に作成します。
Demo クラスの下に Fire を作成します。メソッド。これは、デフォルトでメッセージ キューによって呼び出されるメソッドです。図に示すように: # 上記は、完了したタスク (「プッシュ」消費) の作成です。ブラウザまたはターミナルで、index/queue.html メソッドを実行して作成とプッシュを完了します。タスクの消費に関しては、コマンドを参照して、ターミナルでプロジェクトのルート ディレクトリに切り替えることができます:
5. タスクを監視し、php think queue:listen php think queue:work –daemon(不加–daemon为执行单个任务)を実行します。特定のオプションのパラメーターについては、コマンドを入力し、-help を追加して表示できます。
1.1 コマンド モード
queue:work command
php think queue:work --queue helloJobQueue
queue:listen command
を使用して、メッセージ キューを処理し、ワーク プロセスの実行時間を制限するためのワーク サブプロセスを作成します。
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子进程的允许执行的最长时间,以秒为单位
パラメータが含まれていないことがわかります。理由は以下で説明します
Linux は、tp5 を例としてデーモン プロセスを開始します
nohup php think queue:work --daemon --queue 任务名称 & nohup php think queue:work --daemon --queue 任务名称 &Linux のタスクの数を確認するには、次のように入力します。jobs -l
ターミナル内
以上がThinkPHP5 で thinkphp-queue を使用しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。