PHPキューの実装方法
Nov 10, 2020 am 09:58 AMPHP でキューを実装する方法: 最初に新しいファイル「artisan.php」を作成し、次に「phpArtisan」を通じてキューを実行し、最後に Redis クライアントに入り、コマンド「lpush listname a b c d e f g」を入力します。
推奨: 「PHP ビデオ チュートリアル 」
PHP キュー実装の原理 (laravel)
laravel フレームワークを使ったことがある人なら誰でも、キュー関数が付属していることを知っていますが、私は以前、PHP がタイムアウト機構を備えた単なるスクリプトであることに混乱していました。なぜキューを実行し続けることができるのでしょうか?
新しいファイル queue.php
<?php while(true){ echo 1; sleep(1); }
次に、コマンド ラインで php queue.php を実行します
待機後、1 秒ごとに 1 が出力されることがわかります。長い間、すごいですね、なぜphpがタイムアウトしないのですか?
Yes, it will not time out. Why?
回答: 実際、PHP 実行スクリプトはタイムアウトしません。Web ページで見られる 504 などのタイムアウトは、次の原因によって発生します。 Apache.Nginxでは、PHP設定ファイルに設定したタイムアウト時間が決まりますが、PHPコマンドライン実行ファイルはPHP設定ファイルを使用しないため、デフォルトではタイムアウトしません。
ps -ef | grep php
phpキュープロセスがあることがわかります
phpタイムアウトの問題は解決しました
キューの原理を見てみましょう
新しいファイル アルチザン を作成します。php
<?php $redis = new Redis(); $redis->connect('127.0.0.1',6379); while(1){ $res = $redis->lpop('listname'); if($res){echo $res."\r\n";} sleep(1); }
次に、php アルチザン実行キュー
新しいウィンドウを作成し、Redis クライアントに入り、次のコマンドを入力します
lpush listname a b c d e f g
php 職人キューが継続的に redis を実行することがわかります。先ほど入力した値を入力してください。
実際、laravel のキューはこの原則に基づいていますが、キャリアとして redis をサポートするだけでなく、他のデータベースを使用してください
誰かが尋ねたいのですが、私の php 職人.php が開始されました。ウィンドウを閉じたら、役に立たなくなりますか? いいえ、いいえ、いいえ、Linux はまだバックグラウンドで実行できます.
コマンドの後に & を追加するだけです, または nohup ... $ をバックグラウンドで実行できます. もちろん、crontab のスケジュールされたタスクに追加して実行することもできます。
rree以上がPHPキューの実装方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

人気の記事

人気の記事

ホットな記事タグ

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

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

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

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

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

ホットトピック











Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド

PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法
