2011-08-04 150 views
3

试图想到编写2个并行运行的进程的最佳方法。我甚至不确定多处理是否是首选模块。Python多重处理问题

我正在用dataCollector长时间生成大量数据,但我想在dataCollector持续运行时用dataChecker定期检查数据。在我看来,我认为有两个重要时刻,一个是dataCollector转储文件a开始写入另一个文件的时间,这与dataChecker开始分析转储文件的时间相同,其次是两个时间dataChecker完成并开始再次等待dataCollector。

有人可以提出多处理模块的总体概述吗?我应该使用不同的模块吗?谢谢

回答

2

为什么你会使用任何模块?通过有两个独立的进程同时启动,这很简单。 dataChecker将列出目录中的所有文件,对它们进行计数,并在短时间内(几秒或更长时间)休眠。然后它会再次执行,如果文件数量发生变化,它会打开新文件,读取它们并对其进行处理。

两个进程的同步将完全通过邮箱完成,实现为包含文件的目录。只有在dataCollector开始写入新消息时才会收到消息。

+0

这听起来过于复杂。为什么不直接将dataCollector输入到dataChecker中,并在有数据需要检查时将其写入stdout? – Clueless

+1

我认为这很简单。为什么通过让流程知道对方来增加代码的复杂性?这个答案是绝对正确的,它是检查器关心的数据可用性,而不是收集器的状态,收集器完全不关心检查器。 – agf