laravelでキューが開いているかどうかを確認する方法

PHPz
リリース: 2023-04-23 09:49:23
オリジナル
1072 人が閲覧しました

Laravel は、開発を容易にする多くの機能を提供する非常に人気のある PHP 開発フレームワークです。その 1 つがキュー (Queue) システムで、時間のかかるタスクを非同期で処理し、サーバーの負荷を軽減できます。ただし、開発者にとっては、コード フローをより適切に制御するために、キューが開いているかどうかを判断する必要がある場合があります。

Laravel では、キューが開いているかどうかの判断を 2 つの状況に分けて説明します。

  1. キューが開始されているかどうかを判断する

If Laravel を使用する場合、時間のかかるタスクを実行する必要があります。通常、このタスクをキューに追加し、Laravel が提供する Artisan コマンドを使用してキューを開始します:

php artisan queue:work
ログイン後にコピー

または、キュー リスナーを使用してキューを開始します。

php artisan queue:listen
ログイン後にコピー

現時点で、キューが開始されているかどうかを確認したい場合は、次のコードを記述できます。

if (\Illuminate\Support\Facades\Config::get('queue.default') != 'sync' && \Illuminate\Support\Facades\Queue::size()>0) {
    // 队列已经启动且队列中有等待处理的任务
} else {
    // 队列未启动或队列中没有等待处理的任务
}
ログイン後にコピー

デフォルト キューかどうかを判断します。ドライバーは sync です。そうでない場合、キューはすでに開始されているとみなされます。同時に Queue::size() メソッドで現在のキュー内で処理を待っているタスクの数を取得することができ、その数が 0 より大きい場合は待ちのタスクがあると見なされます。キューで処理されます。

  1. キューが無効かどうかを確認する

特殊なケースでは、キュー システムを無効にする必要があります。この時点で、.env# で無効にすることができます。 ## file Set QUEUE_CONNECTION to sync:

QUEUE_CONNECTION=sync
ログイン後にコピー
ただし、この場合、

Queue::size()## によって取得されるタスクの数# 実際に動作しているキューがないため、メソッドは常に 0 になります。現時点で、キューが無効になっているかどうかを判断したい場合は、次のコードを作成できます。 <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">if (\Illuminate\Support\Facades\Config::get('queue.default') == 'sync') {     // 队列已经被禁用 } else {     // 队列未被禁用 }</pre><div class="contentsignin">ログイン後にコピー</div></div> デフォルトのキュー ドライバが

sync

であるかどうかを判断するだけで済みます。そうであれば、キューが無効になっていることを意味します。 概要

上記は、Laravel でキューが開いているかどうかを確認する方法です。コードを記述するときは、キューのデフォルトのドライバーが

sync

であるかどうか、およびキュー内で処理を待機しているタスクの数に注意する必要があります。これらの方法により、コード フローをより正確に制御でき、より良い開発が可能になります。

以上がlaravelでキューが開いているかどうかを確認する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート