Статистика статуса процесса Reactphp (бездействует, работает и т.д.)
Я начинаю использовать http://reactphp.org/ для обработки HTTP-запроса.
Я запускаю несколько реагирующих рабочих, которые работают на разных портах, а затем используют Nginx в качестве балансировки нагрузки для обработки запросов.
Как этот
upstream backend {
server 127.0.0.1:13300;
server 127.0.0.1:13301;
.....
}
Все работает хорошо, как ожидалось.
Вопрос заключается в том, как получить статистику состояния процесса реакцииphp. Сколько процессов в настоящее время находится в режиме ожидания (ожидание нового запроса), сколько процессов работает под запрос и т.д.
Существует ли временное решение?
Или подумайте, как вручную обрабатывать статистику процесса.
Пример - блокировка записи в некоторый статус процесса кэширования. Когда процесс запроса на запуск - увеличивает количество обработанных процессов, когда запрос на завершение - увеличивает количество незанятых процессов.
Ответы
Ответ 1
В последний раз, когда у меня был набор рабочих потоков, я создал несколько таблиц в базе данных MySQL.
Рабочие были там, где каждый поток регистрировал строку (давая ей идентификатор). Поток заблокировал бы его строку и сохранил столбец статуса.
Был также стек инструкций. Если работник увидел его ID и текст "exit", он закроется и выйдет. Последняя вещь - удалить его. Вы также можете установить статус выхода.
Я также сделал отчет о состоянии и страницу администратора, где я мог выдавать команды и настраивать задачи для моих рабочих потоков.
Это позволит вам увидеть, что делает каждый поток, и получить количество простоя.
Холостые потоки:
SELECT count(id) AS threads WHERE status='idle';
Количество состояний темы:
SELECT status, count(id) AS threads GROUP BY status;