Le programme d'écoute de file d'attente n'a pas été démarré sur un serveur, certains travaux ont été poussés (à l'aide du pilote Redis).
Comment pourrais-je compter (ou obtenir tous) ces travaux? Je n'ai trouvé aucune commande d'artisan pour obtenir cette information.
Si quelqu'un cherche toujours une réponse, voici comment je le fais:
$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
est le nom de la connexion Redis qui est null par défaut, et $queue
est le nom de la file/tube qui est 'default' par défaut!
Depuis Laravel 5.3, vous pouvez simplement utiliser Queue::size()
(voir PR ).
Vous pouvez également utiliser directement la façade Redis en procédant comme suit:
use Redis;
\Redis::lrange('queues:$queueName', 0, -1);
Testé dans Laravel 5.6 mais devrait fonctionner pour tous les 5.X.
Vous pouvez installer Horizon . Laravel Horizon fournit un tableau de bord pour surveiller vos files d'attente et vous permet de configurer davantage votre file d'attente.
composer require laravel/horizon
php artisan vendor:publish --provider="Laravel\Horizon\HorizonServiceProvider"
Vous devez définir le fichier de configuration .env
et le fichier config/horizon.php
.
Testé avec Laravel 5.6
Si quelqu'un cherche encore une approche pour les anciennes versions du Laravel:
$connection = 'queue';
$queueName = 'default';
$totalQueuedLeads = Redis::connection($connection)->zcount('queues:'.$queueName.':delayed' , '-inf', '+inf');
Je suis un PHP Laravel dev, depuis 3 ans, je connais ces commandes depuis peu, alors honte à moi. ; (
Si vous utilisez le pilote redis
pour votre file d'attente, vous pouvez compter tous les travaux restants par nom:
use Redis;
$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');
Pour voir le résultat immédiatement, vous pouvez utiliser php artisan tinker
et cliquer sur Redis::llen('queues:default');
.