首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >芹菜+ Eventlet +非阻塞请求

芹菜+ Eventlet +非阻塞请求
EN

Stack Overflow用户
提问于 2015-02-04 07:20:50
回答 2查看 7.8K关注 0票数 11

我在芹菜workers中使用Python进行大量(~10/秒) API调用(包括GET、POST、PUT、DELETE)。每个请求大约需要5-10秒才能完成。

我试着在eventlet池中运行芹菜工人,使用1000个并发。

由于requests阻塞进程,每个并发连接都在等待一个请求。

如何使requests异步?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-02-04 22:31:09

使用eventlet 猴补使任何纯python库非阻塞。

  • 修补单个库导入请求#而不是这样做:导入事件请求=eventlet.import_patched(‘请求’)包均衡器G请求书可以简化为这两行。
  • 修补一切 导入事件eventlet.monkey_patch() #必须尽早执行.#现在所有事情都是非阻塞的:导入请求、amqp、memcache、paramiko、redis

更新:有带有猴子补丁请求库的已知问题。如果你得到:

代码语言:javascript
复制
ImportError: cannot import name utils

,然后修改导入行以

代码语言:javascript
复制
requests = eventlet.import_patched('requests.__init__')
票数 19
EN

Stack Overflow用户

发布于 2015-02-04 07:26:26

来自文档

有很多项目将请求与Python的一个异步框架结合在一起。两个很好的例子是G请求书请求-期货。

特别是对于事件,您可以使用均衡器

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28315657

复制
相关文章

相似问题

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