キューリスナーがサーバーで開始されず、一部のジョブがプッシュされました(Redisドライバーを使用)。
論文の仕事を数える(またはすべてを得る)にはどうすればよいですか?この情報を取得するための職人のコマンドは見つかりませんでした。
誰かがまだここで答えを探しているなら、私はそれをする方法です:
$connection = null;
$default = 'default';
//For the delayed jobs
var_dump( \Queue::getRedis()->connection($connection)->zrange('queues:'.$default.':delayed' ,0, -1) );
//For the reserved jobs
var_dump( \Queue::getRedis()->connection($connection)->zrange('queues:'.$default.':reserved' ,0, -1) );
$connection
は、デフォルトではnullであるRedis接続名であり、$queue
はキュー/チューブの名前で、デフォルトでは「デフォルト」です!
Laravel 5.3なので、単にQueue::size()
を使用できます( [〜#〜] pr [〜#〜] を参照)。
これを行うことで、Redis Facadeを直接使用することもできます。
use Redis;
\Redis::lrange('queues:$queueName', 0, -1);
Laravel 5.6でテスト済みですが、すべての5.Xで動作するはずです。
私はPHP Laravel dev、3年、これらのコマンドを最近知ったばかりなので、恥ずかしいです。;(
キューにredis
ドライバーを使用している場合、count残りのすべてのジョブを名前で指定できます。
_use Redis;
// List all keys with status (awaiting, reserved, delayed)
Redis::keys('*');
// Count by name
$queueName = 'default';
echo Redis::llen('queues:' . $queueName);
// To count by status:
echo Redis::zcount('queues:' . $queueName . ':delayed', '-inf', '+inf');
echo Redis::zcount('queues:' . $queueName . ':reserved', '-inf', '+inf');
_
結果をすぐに表示するには、_php artisan tinker
_を使用してRedis::llen('queues:default');
を押します。
Horizonをインストールできます。 Laravel Horizonは、キューを監視するためのダッシュボードを提供し、キューに対してより多くの設定を行うことができます。
composer require laravel/horizon
php artisan vendor:publish --provider="Laravel\Horizon\HorizonServiceProvider"
.env
構成ファイルとconfig/horizon.php
ファイルを設定する必要があります。
Laravel 5.6でテスト済み
誰かがまだ古いバージョンのLaravelのアプローチを探している場合:
$connection = 'queue';
$queueName = 'default';
$totalQueuedLeads = Redis::connection($connection)->zcount('queues:'.$queueName.':delayed' , '-inf', '+inf');