繁体   English   中英

Python 2 + multiprocessing.Pool.map有无限的可迭代性吗?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM