11得票6回答
当使用非阻塞I/O服务器时,单个请求需要很长时间会发生什么?

使用Node.js或Eventlet或其他非阻塞服务器时,当某个请求时间较长时会发生什么情况?它会阻塞所有其他请求吗? 例如,有一个请求进来,需要200毫秒计算,由于Node.js使用单线程等原因,这将会阻塞其他请求。 这意味着每秒处理的请求数将因为实际响应计算时间的原因而显著下降。 但...

11得票2回答
Celery + Eventlet + 非阻塞请求

我正在使用Python的requests库在celery的workers中进行大量(约10个/秒)的API调用(包括GET,POST,PUT,DELETE)。每个请求需要大约5-10秒完成。 我尝试在具有1000并发的eventlet池中运行celery工作进程。 由于requests是阻...

10得票1回答
Django超出了Postgres的最大连接数限制。

我正在使用一个Django应用程序时遇到了一个问题,当使用异步的eventlet工作进程通过Gunicorn运行时,它超出了与Postgres的最大同时连接数(100)。当达到连接限制时,应用程序开始返回500错误,直到新连接可以建立。 这是我的数据库配置:DATABASES = { ...

10得票2回答
Eventlet + DNS Python 属性错误:模块 "dns.rdtypes" 中没有属性 ANY。

我知道有人会遇到这个问题。今天我也遇到了这个问题,但我很快就解决了,并且我想分享我的解决方法: 问题: from flask_socketio import SocketIO 你会收到一个类似以下的输出错误: Attribute Error: module "dns.rdtypes...

10得票1回答
使用Eventlet从WSGI应用程序获取客户端IP地址

我正在使用 Python Eventlet 库(http://eventlet.net/doc/)编写一个基本的调度模型服务器。查看了 Eventlet 的 WSGI 文档(http://eventlet.net/doc/modules/wsgi.html)后,我发现 eventlet.wsg...

10得票2回答
Eventlet/通用异步I/O任务的粒度

我正在开发一个网络后端/API提供程序,从第三方Web API实时获取数据,将其放入MySQL数据库中,并通过HTTP/JSON API使其可用。 我使用Flask提供API,并使用SQLAlchemy Core处理数据库。 对于实时数据抓取部分,我有一些函数来包装第三方API,发送请求,...

9得票1回答
扭曲、gevent和eventlet——我应该在什么情况下使用它们?

在什么情况下,像eventlet/gevent这样的东西比twisted更好?Twisted似乎是最常用的,但eventlet/gevent肯定有一些优势... 我不是在寻找特定场景的答案,只是一些概论。

9得票2回答
Gevent/Eventlet猴子补丁用于数据库驱动程序

进行 Gevent/Eventlet 代码猴子补丁后 - 我能否假设无论何时 DB 驱动程序(例如redis-py,pymongo)通过标准库(例如 socket)使用 IO,它都是异步的? 因此,在事件应用程序中使用事件程序员的猴子补丁就足以使例如:redis-py非阻塞吗? 从我所知道...

8得票2回答
如何使用eventlet库来实现异步gunicorn工作进程

我的一个Django项目使用Ansible(gunicorn&nginx)部署。以下是gunicorn配置: bind = '127.0.0.1:8001' backlog = 2048 workers = 8 worker_class = 'sync' worker_connection...

8得票1回答
Eventlet是否能够管理异步传入和传出的AMQP连接消息?

实际设计: 对于那些回到这个问题的人,下面的有用答案让我找到了一个可行的设计,它运行得很好。三个关键点如下: Eventlet是一个非常安全的环境——如果两个greenlets同时尝试从同一socket接收(recv())或发送(send())数据,那么Eventlet会优雅地使用异常杀...