Pebble 的进程池采用 max_workers 和 max_tasks 的参数。
https://pythonhosted.org/Pebble/#pools
max_tasks 的描述有点不清楚:
“如果 max_tasks 是一个大于零的数字,每个工作人员将在执行相同数量的任务后重新启动。”
我的问题是:
如果它不大于零怎么办?那么它的表现如何?
重启工人是什么意思?假设 max_tasks 为 5。那么每个进程会执行 5 次迭代,然后被杀死,并重新启动一个新进程吗?这样做有什么好处?
我知道其他库允许您自定义池映射,具体取决于每个任务是否需要相似的时间才能完成。这与这里有关吗?
一般来说,设置 max_tasks 有哪些指导方针?
我正在运行一个需要在长度 += 160 000 的列表的每个元素上运行的函数。它是完全可并行化的,我的服务器有 8 个内核。每个函数调用将花费大约相同的时间来完成,最多比平均时间长 3 倍。
谢谢。