У меня есть простой скрипт на python-сервере, который разветвляет несколько экземпляров (скажем, N) программы на C ++. Программа на C ++ генерирует некоторые события, которые необходимо перехватить.
События в настоящее время записываются в файл журнала (1 файл журнала на разветвленный процесс). Кроме того, мне нужно периодически (T минут) получать скорость, с которой события генерируются во всех дочерних процессах, либо на сервер python, либо в какую-либо другую программу, прослушивающую эти события (все еще не уверенную). В зависимости от частоты этих событий сервер может предпринять некоторые «повторные действия» (скажем, уменьшить количество разветвленных экземпляров)
Некоторые указатели, на которые я кратко посмотрел:
- файлы журнала grep - просмотрите файлы журнала запущенного процесса (.running), отфильтруйте записи, сгенерированные за последние T минут, проанализируйте данные и составьте отчет
- socket ipc - добавить код в программу c ++ для отправки событий в какую-либо серверную программу, которая анализирует данные через T минут, сообщает и запускает заново
- redis / memcache (не уверен полностью) - добавить код в программу на c ++, чтобы использовать распределенное хранилище для сбора всех сгенерированных данных, анализа данных через T минут, создания отчетов и повторного запуска
Пожалуйста, дайте мне знать ваши предложения.
Спасибо