Python Grequests+多处理

2024-03-28 23:06:51 发布

您现在位置:Python中文网/ 问答频道 /正文

我尝试使用来自多处理库的池中的grequests进行异步http调用。我遇到一个问题,表明grequest和multiprocessing可能彼此不兼容;特别是,调用monkey.patch_all()会破坏池的创建。在

最初,在我的代码中没有调用monkey.patch_all()

from gevent import monkey
monkey.patch_all()

我有两个错误:

^{pr2}$

以及

requests.exceptions.ConnectionError: None: Max retries exceeded with url: SOME_URL (Caused by redirect)

调用monkey.patch_all()可修复上述错误,但会导致代码挂起:

p = Pool(THREAD_POOL_SIZE)

不调用monkey.patch_all()将导致我的池创建成功。调用monkey.patch_all(thread=False, socket=False)也可以成功创建池,但不能解决前两个错误。在


Tags: 代码fromimportfalsehttp错误geventall