【发布时间】:2012-03-29 10:34:21
【问题描述】:
我正在使用外部进程,它为每个处理的数据块写入短行输出。我想在每一行之后做出反应,不会有任何额外的延迟。但是,似乎ProcessProtocol 的.outReceived() 被缓冲了。文档状态:
.outReceived(data): 使用接收自的数据调用 进程的标准输出管道。 管道倾向于提供更大的数据 块比套接字(一千字节是常见的缓冲区大小),所以你 可能不会经历典型的“随机点点滴滴”行为 网络套接字,但无论如何你都应该准备好处理,如果你 不要在一次调用中获取所有数据。要正确地做到这一点, outReceived 应该简单地累积数据并推迟执行 直到过程完成为止。
结果是,在整个处理完成后,我得到一个块的输出。如何强制ProcessProtocol 不缓冲标准输出?
【问题讨论】:
标签: python twisted multiprocessing buffering