Как получить все отложенные задания в очереди laravel на redis?
прослушиватель очереди не был запущен на сервере, некоторые задания были нажаты (используя драйвер Redis).
Как я мог рассчитывать (или) тезисы работы ? Я не нашел никакой команды ремесленника, чтобы получить эту информацию.
5 ответов
Если кто-то все еще ищет ответ, вот как я это делаю:
$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
- это имя очереди / пробки, которая "по умолчанию" по умолчанию!
вы также можете использовать фасад Redis напрямую, сделав это:
use Redis;
\Redis::lrange('queues:$queueName', 0, -1);
протестировано в Laravel 5.6, но должно работать для всех 5.Х.
Так как Laravel 5.3 вы можете просто использовать Queue::size()
(см. PR).
вы можете установить Horizon. Laravel Horizon предоставляет панель мониторинга для мониторинга очередей и позволяет выполнять дополнительную настройку очереди.
composer require laravel/horizon
php artisan vendor:publish --provider="Laravel\Horizon\HorizonServiceProvider"
вы должны установить .env
config и .
протестировано с Laravel 5.6
Если кто-то все еще ищет подход для более старых версий Laravel:
$connection = 'queue';
$queueName = 'default';
$totalQueuedLeads = Redis::connection($connection)->zcount('queues:'.$queueName.':delayed' , '-inf', '+inf');