我有一个简单的 python 服务器脚本,它 fork 出 C++ 程序的多个实例(比如 N)。 C++程序生成一些需要捕获的事件。
事件当前正在日志文件中捕获(每个 fork 进程 1 个日志文件)。此外,我需要定期(T 分钟)获取事件在所有子进程中生成到 python 服务器或监听这些事件的其他程序的速率(仍然不确定)。根据这些事件的发生率,服务器可能会采取一些“ react ”(比如减少 fork 实例的数量)
一些我简要看过的指示:
- grep log files - 遍历正在运行的进程日志文件(.running),过滤那些在最后 T 分钟内生成的条目,分析数据并报告
- socket ipc - 将代码添加到 c++ 程序以将事件发送到某个服务器程序,该服务器程序在 T 分钟后分析数据、报告并重新开始
- redis/memcache(不确定)- 将代码添加到 c++ 程序以使用一些分布式存储来捕获所有生成的数据,在 T 分钟后分析数据,报告并重新开始
请告诉我您的建议。
谢谢
最佳答案
如果时间不是最重要的(T 分钟听起来比启动的 C++ 程序中发生的任何事件都长),那么不要让事情变得比他们需要的更复杂。忘记 IPC(套接字、共享内存等),只需让每个 C++ 程序记录您需要了解的有关时间/性能的信息,并让 python 脚本每 T 分钟检查一次您需要数据的日志。不要浪费时间把你可以用简单的方式做的事情复杂化
关于c++ - 请求有关执行 IPC/事件捕获的建议,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8796882/