如何在 redis 上获取 laravel 队列中的所有待处理作业?

2022-08-30 13:01:41

没有在服务器上运行,因此推送了一些作业(使用 Redis 驱动程序),但从未运行过。queue:listen

我如何计算(或获得所有)这些工作?我没有找到任何工匠命令来获取此信息。


答案 1

如果有人仍在寻找答案,以下是我的做法:

$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$defaultdefault


答案 2

从Laravel 5.3开始,你可以简单地使用(见PR)。Queue::size()


推荐