Воркеры и клиенты, подключенные к серверу gearmand, работают «сами по себе», и отслеживать, что где происходит без дополнительного отладочного вывода не очень удобно (а мониторить хочется).
В протоколе Gearman есть команда status, в ответ на которую сервер выдает список зарегистрированных воркеров, сообщает их число, а также число выполняемых задач и длину очереди.
Самый простой способ — подключиться к gearmand телнетом, и послать команду status:
# telnet localhost 4730
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
status
echo2 1 1 2
echo 5 2 5
.
В ответ сервер печатает список зарегистрированных функций (в показанном примере — echo и echo2) и для каждого — три показателя: число исполняемых задач, число задач в очереди и число доступных воркеров.
(Если выполняется одна задача, и при этом нет ни одного клиента, ожидающего ту же функцию, то почему-то в очереди все равно стоит единица.)
Вопрос о том, как мониторить задачи, недавно поднимался в рассылке про Gearman, — там же приведен пример Perl-скрипта, который выводит статус по запрошенному имени функции. Пример может послужить (как это и было со мной) отправной точкой к тому, чтобы понять, как работать с gearmand по телнету :-)
Комментировать