我开始使用http://reactphp.org/来处理HTTP请求。
我运行多个在不同端口上运行的反应工作者,然后使用Nginx作为负载平衡来处理请求。 喜欢这个
upstream backend {
server 127.0.0.1:13300;
server 127.0.0.1:13301;
.....
}
一切运作良好。
问题是如何获得reactphp过程状态的统计数据。当前有多少进程处于空闲状态(等待新请求),有多少进程在请求下工作,等等。
是否有现成的解决方法?
或者想法如何手动处理流程统计。
示例 - 锁定写入某些缓存进程状态。何时是启动请求进程 - 增加处理进程数,完成请求时 - 增加空闲进程数。
答案 0 :(得分:3)
上次我有一组工作线程时,我在MySQL DB中设置了一些表。
工作者是每个线程注册一行的地方(给它一个ID)。该线程将锁定它的行并保持状态列。
还有一个指令堆栈。如果工人看到它的ID和文本"退出"它会关闭并退出。最后一件事就是删除它的行。将状态设置为退出也会有效。
我还制作了一个状态报告和管理页面,我可以在其中发出命令并为我的工作线程设置任务。
然后,这将允许您查看每个线程正在执行的操作并获取空闲线程的计数。
空闲线程:
SELECT count(id) AS threads WHERE status='idle';
线程状态计数:
SELECT status, count(id) AS threads GROUP BY status;