[英]Python 2 + multiprocessing.Pool.map for endless iterable?
下面的代码(python2)从不记录任何内容,所有python进程均已启动,但没有日志消息和记录被保存。
有什么线索吗?
def writer(record):
log.debug("Writing {}/{}".format(
threading.currentThread().getName(), record))
record.save()
return
if __name__ == '__main__':
# this is class implementing cycling iterable
# therefore it never ends
streamer = simulation.streams.SimulationStreamer(cfg.config)
p = multiprocessing.Pool(1)
p.map(writer, streamer)
SimulationStreamer类实现iter和next()方法。 这是它的实现
因为它是无限的可迭代的,所以我无法在类中定义__len__
方法
Pool.map
将尝试将迭代器转换为列表以找到其长度。 请改用p.imap
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.