Команда rmfunc в job-сервере Gearman

| Нет комментариев

Те, кто использовал Gearman в работе, наверняка сталкивались с ситуацией, когда разрабатываемый воркер либо падает во время отладки, либо по забывчивости не был подключен, но при этом приложение уже начало посылать запросы на выполнение задач, обслуживаемых этим воркером.

В статусе job-сервера такие задачи видны с «перекошенным» счетчиком:

new_feature 14 0 0

То есть запросы на выполнение этой задачи в очедери уже есть, но обслужить ее некому. Непрятность здесь может быть в том, что как только подключится воркер, весь этот пул запросов потечет сразу к нему, и при отладке это крайне неудобно. Перезагружать job-сервер, чтобы обнулить счетчики, тоже не лучший выход, поскольку придется перезапустить все воркеры.

Мариан Маринов, технический архитектор компании SiteGround, сегодня добавил в интерфейс команду rmfunc, которая позволяет удалить функцию из списка зарегистрированных.

Пользоваться новой командой крайне просто:

$ telnet localhost 4730
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
status
new_feature 14 0 0
.
rmfunc new_feature
OK
status
.

Запрос на удаление функции, для которой существует «живой» воркер, завершается с ошибкой ERR there are still connected workers.

P. S. Сейчас весь код находится в отдельной ветке.

Комментировать

Страницы

  • img

Об этой записи

Сообщение опубликовано 11.03.2010 16:26. Автор — ash.

Предыдущая запись — Логотипчег YAPC::Europe 2010

Следующая запись — Perl 5.10 в 2010-м — первая часть части III

Смотрите новые записи на главной странице или загляните в архив, где есть ссылки на все сообщения.