2012-01-09 31 views
0

我有一个简单的python服务器脚本,它分散了C++程序的多个实例(如N个)。 C++程序生成一些需要捕获的事件。关于做IPC /事件捕获的建议请求

当前正在捕获日志文件中的事件(每个分叉进程1个日志文件)。另外,我需要定期(T分钟)将所有子进程中产生的事件的速率提供给python服务器或其他侦听这些事件的程序(仍然不确定)。基于这些事件的速度,一些“再行动”可以由服务器(比如减少分叉实例的数量)采取

一些指点我已经简单看了看:

  • grep的日志文件 - 通过正在运行的进程日志文件(.running),过滤最近T分钟生成的条目,分析数据并报告
  • socket ipc - 向C++程序添加代码以将事件发送到某些分析数据的服务器程序在T分钟后,再次报告并重新开始
  • redis/memcache(不确定是否完全) - 将代码添加到C++ pro克使用一些分布式存储捕获所有生成的数据,T分钟后分析数据,重新报告并重新开始

请让我知道您的建议。

感谢

+0

投票迁移到Programmers.SE - 根据定义,任何要求建议,而不是具体答案不属于SO。 – ildjarn 2012-01-10 00:01:02

回答

0

如果时间不是本质的(T分钟听起来好像比C++程序中发生的任何事件都长),那么不要让事情变得比他们需要的更复杂。忘记IPC(套接字,共享内存等),只需让每个C++程序记录您需要了解的时间/性能,并让python脚本每隔T分钟记录一次您需要的数据。不要浪费时间过于复杂的东西,你可以做一个简单的方式

0

作为替代你的插座IPC的建议,怎么样0mq。它是一个可以在线程间,进程间或机器间进行消息传输的库(使用Python中的可用绑定)。很容易去,很快。

我不隶属于它。我只是评估它的其他用途,并认为它可能适合你。