У меня есть веб-сайт, написанный на PHP (CakePHP), где определенные ресурсоемкие задачи обрабатываются фоновым процессом. Это делается через очередь сообщений Beanstalkd. Мне нужен какой-то способ получить статус этого фонового процесса, чтобы я мог отслеживать его с помощью Monit.
Фоновый процесс представляет собой оболочку CakePHP (просто скрипт PHP CLI), которая взаимодействует с Beanstalkd. Он просто выполняет резерв() на Benastalkd и ждет нового сообщения. Когда он получает сообщение, он обрабатывает его. Мне нужен способ мониторинга этого процесса с помощью Monit, чтобы он мог перезапустить фоновый процесс, если что-то пошло не так. .
До сих пор я думал о написании сценария PHP CLI, который отбрасывает сообщение в Beanstalkd. Фоновый процесс получает сообщение и каким-то образом сообщает о своем внутреннем статусе сценарию CLI. Но как? Розетки? Общая память? Какой-то другой метод IPC?
Или я, возможно, слишком усложняю и есть ли более простой способ контролировать такой процесс с помощью Monit?
Заранее спасибо!