首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >并行请求处理python + lambda

并行请求处理python + lambda
EN

Stack Overflow用户
提问于 2021-05-18 08:48:56
回答 1查看 156关注 0票数 0

我有一个大约80万个ID的列表,对于每个ID,我应该向api发送一个请求,获取数据并插入到我的数据库中。

当前流程是循环每个项目并等待数小时:/

使用python + lambda执行此任务的聪明方法是什么?

EN

回答 1

Stack Overflow用户

发布于 2021-05-18 15:17:19

您可以在python中使用允许并行化进程的concurrent.futures

https://docs.python.org/3/library/concurrent.futures.html

定义您的worker函数:

代码语言:javascript
复制
import time

def worker(id):
    print(f"start worker {id}")
    time.sleep(1)
    print(f"end worker {id}")

并行化:

代码语言:javascript
复制
currs = ThreadPoolExecutor(max_workers=5) # If you don't want more than 5 parallelized execution of your function

for i in range(20): # Assuming you want to submit 20 requests
    curr_future_result = currs.submit(worker, i)

如果你想执行api调用,你可以这样做:

代码语言:javascript
复制
import requests

urls = [.......]

def worker(url):
    requests.get(url)
    
currs = ThreadPoolExecutor(max_workers=5)

for url in urls:
    curr_future_result = currs.submit(worker, url)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67578590

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档