我有一个应用程序需要设置30-40个API调用,每个调用启动查询" jobs"需要轮询状态,然后从API检索。每项工作将花费不明的时间 - 从即刻到3-4分钟。
这似乎是应用多线程模型的好地方,其中我发送"发送"这些工作然后在处理结果之前等待所有这些工作完成。我对Python中可用的所有选项感到困惑,而且我不清楚是否应该使用concurrent.futures
或asyncio
或greenlets
。
如何评估选项并做出可选的Pythonic代码?哪些库是最普遍和可重复使用的(换句话说,哪一个对我来说是一个很好的投资)? 哪个最适合我的任务?
有关如何将我的问题转换为Python 3.6+的任何建议或指导将不胜感激。
答案 0 :(得分:2)
我不确定你在问什么。但是,Python的多处理非常简单,如果您只需要触发作业,那么以下内容可能有所帮助:
import multiprocessing as mp
def print_index(x):
print(x)
jobs = []
for i in range(3):
p = mp.Process(target=print_index, args=(i,))
jobs.append(p)
p.start()
for job in jobs: #wait for the 3 jobs to finish...
job.join()
您可以通过文档了解有关多处理的更多信息:https://docs.python.org/3/library/multiprocessing.html