Очередь задач хранится в Redis. Lumen / Laravel версии 6.x
Как в любой момент времени по
id
задачи узнать, сколько ещё задач перед ней?
В
описании очередей Laravel не нашёл.
В момент создания задачи можно прочитать размер очереди через
RedisQueue.size(), но как быть потом, через некоторое время?
Смотрю, когда есть задачи в очереди, появляются три ключа:
"queues:xxxxxx.queue" LIST
"queues:xxxxxx.queue:notify" LIST
"queues:xxxxxx.queue:reserved" ZSET
Первый, вроде бы, хранит как раз сами задачи, сериализованные, похоже, в JSON. Можно искать
id
задачи в элементах этого списка. Костыльно, но пока это основной вариант.
Во втором ключе
:notify
хранятся одни "1" числом столько же, сколько в первом.
В третьем
:reserved
, похоже, хранится выполняемая в настоящий момент задача.