Слушатель очереди не запускался на сервере, некоторые задания, которые были нажаты (с использованием драйвера Redis).
Как я могу считать (или получить все) тезисы? Я не нашел команду artisan для получения этой информации.
Слушатель очереди не запускался на сервере, некоторые задания, которые были нажаты (с использованием драйвера Redis).
Как я могу считать (или получить все) тезисы? Я не нашел команду artisan для получения этой информации.
Если кто-то все еще ищет ответ, так это то, как я это делаю:
$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
- это имя соединения Redis, которое по умолчанию равно null, а $queue
- имя очереди/трубки, которая по умолчанию используется по умолчанию!
Начиная с Laravel 5.3 вы можете просто использовать Queue::size()
(см. PR).
Вы также можете использовать Redis Facade, выполнив следующие действия:
use Redis;
\Redis::lrange('queues:$queueName', 0, -1);
Протестировано в Laravel 5.6, но должно работать для всех 5.X.
Я PHP разработчик Laravel, 3 года, я недавно знал эти команды, так что позор мне.; (
Если вы используете драйвер redis
для своей очереди, вы можете сосчитать все оставшиеся задания по имени:
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');