我有一个用 PHP (CakePHP) 编写的网站,其中某些资源密集型任务由后台进程处理。这是通过 Beanstalkd 消息队列完成的。我需要一些方法来检索该后台进程的状态,以便我可以使用 Monit 对其进行监控。
后台进程是一个与 Beanstalkd 通信的 CakePHP Shell(只是一个 PHP CLI 脚本)。它只是在 Benastalkd 上做一个 reserve() 并等待新消息。当它收到一条消息时,它会处理它。我想要某种方式用Monit监控这个进程,以便在出现问题时重新启动后台进程。
到目前为止,我一直在考虑编写一个 PHP CLI 脚本,该脚本在 Beanstalkd 中删除一条消息。后台进程获取消息并以某种方式将其内部状态传回 CLI 脚本。但是怎么做?插座?共享内存?其他IPC方法?
还是我在这里可能太复杂了,有没有更简单的方法来使用 Monit 监控这样的过程?
提前致谢!