我正在编写一个简单的脚本来处理pyspark python中的一些命令(从1000到2000不等),在每次运行中,每个命令大约需要3 seconds
(它包括API调用、D/B读取、D/B更新和其他处理)。
为了减少总体脚本时间,我用Future
和ThreadPoolExecutor
更新了脚本因为要处理的订单之间没有依赖关系
目前,我已经创建了一个包含20个线程的线程池,并提交了所有任务(1000个订单),工作正常。
我想知道我可以安全地向ThreadPoolExecutor提交多少任务?是否有一个点/数字,在该点/数字之后任务将被拒绝
from concurrent.futures import ThreadPoolExecutor
import time
futuresList = []
executor = ThreadPoolExecutor(20)
start_seconds = time.time()
for tempOrder in membership_orders_to_processList:
future = executor.submit(processOrder, (tempOrder))
futuresList.append(future)
for tempFuture in futuresList:
try:
print("result",tempFuture.result())
except Exception as inst:
print("Exception occurred in future result",inst)
executor.shutdown(wait=True)
好问题,在每台计算机(处理器、操作系统)上都是不同的。 根据我的经验,并没有限制,因为限制是,有多少人可以处理操作系统
相关问题 更多 >
编程相关推荐