Как я могу получить список всех заданий в трубке beanstalk?

У меня есть beanstalk, установленный на моем сервере, и запустите следующее:

$ telnet localhost 11300
use my_tube
USING my_tube
peek-ready
FOUND 11065 41
{"ts":1295537419,"data":{"nid":"212156"}}

Теперь мой вопрос: как я могу получить список всех заданий в очереди; что-то вроде peek-all?

Ответ 1

Есть некоторые вилки основного кода, которые предоставляют такую ​​информацию (получение готовых, зарезервированных и скрытых заданий в трубке), но не в основной багажник версия. Это из-за проблем, которые он может принести - например, при огромной реализации, он должен был бы вернуть потенциально огромный объем данных и блокировать сервер от выполнения какой-либо другой работы в то же время.

В конечном счете, BeanstalkD представляет собой очередь, а не массив и не предназначен для доступа к каждому элементу внутри него - он возвращает следующий элемент для работы.

Может быть полезно подумать о проблеме из другого направления - например, спрашивать, зачем вам нужна информация о содержимом очереди и, возможно, собирать данные, которые вам понадобятся по мере добавления элементов, вашим собственным кодом.