问题标签 [eventlet]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
5464 浏览

python - 如何真正在python中实现超时?

如何在python中真正实现超时?http://eventlet.net/doc/modules/timeout.html

代码如下:

永远不会超时。我哪里错了?

PS我换了:

和:

为异常添加 False,现在它运行良好:

改成:

但它仅适用于 eventlet.sleep(0.1)

例如此代码错误:

我只是添加 sleep 0 秒:

它就像一个魅力。

解决了

0 投票
1 回答
524 浏览

python - 使用 eventlet 时 getaddrinfo() 似乎阻塞

我使用 eventlet 运行我的 Django-celery 任务。但是有些东西仍然在阻塞。我使用了eventlet的阻塞检测,发现getaddrinfo()是阻塞的。我在某处读到我必须安装“dnspython”包,但不管有没有都没有区别。目前已安装:

有趣的是,阻塞出现在 eventlet 的代码(eventlet.green.socket)中的某个地方。

我像这样运行芹菜:

我的自定义 async_manage.py (部分):

这是我得到的错误:

你知道如何解决这个问题吗?这对我来说毫无意义。

提前致谢, 马蒂亚斯

0 投票
1 回答
1380 浏览

mysql - 使用 MySQL 的 Gunicorn 多线程

我正在尝试运行一个简单的 NGnix + Gunicorn + Django + MySQL(AWS 上的 RDS)堆栈,但显然某些 MySQL 查询发生的任何事情都会减慢并锁定服务。

为了防止这种情况,我开始使用 eventlet(它也可以与 Celery 配合使用),但修补 MySQLdb 似乎会导致性能损失(2-3x 响应时间)和不稳定(可能会在重启期间锁定所有数据库连接几秒钟)。

具有相同逻辑的 Celery + eventlet 似乎工作得很好,那我错过了什么?

谢谢!

0 投票
2 回答
686 浏览

python - 修补 python eventlet 以解决 Ubuntu 12.04 中的 OpenSSL TLS 1.1 错误

我刚刚在带有 TLS 连接的 Ubuntu 12.04 中的 OpenSSL 中遇到了一个错误,我需要解决它。错误简介 - OpenSSL 实现中的 Ubuntu 12.04 错误使使用 TLS 1.1 对 HTTPS 的各种调用随机失败。

上面的链接还提供了通常的 python 解决方法,它基本上强制使用 TLS 1.0 而不是 TLS 1.1。然而,这种解决方法并不适合我开箱即用,因为我使用的是实现非阻塞 HTTP 请求的 eventlet 库。

据我了解 - eventlet 库重新定义了一些与此事相关的httplib.HTTPSConnection类,特别是 - 我需要修补以强制执行 TLS 1.0 的类。

所以问题是——我到底需要在 eventlet 中修补什么,或者重新定义什么来强制通过 eventlet 进行非阻塞 HTTP 调用的 TLS 1.0 连接?

0 投票
1 回答
512 浏览

python - 配合 eventlet 和系统调用

我的项目使用eventlet,现在我必须异步读写文件(实际上是一个设备)。我试图eventlet.tpool.execute()运行读取线程,但它阻塞了主循环。

我的问题是,如何同时运行读取线程和 eventlet 线程?这两个线程是否有可能以某种方式进行通信?

速写:

然后doSomethingElse()永远不会被调用。

0 投票
1 回答
1240 浏览

django - eventlet - green threads on a django based web service

I have a web service that creates images from geographic features and return it to a map using django framework. This is a tiling map service (TMS)

The web sercive is called through an url such: http://host.com/TMS/map_id/x/y/z.png where map_id, x, y and z are variables used to generate the images.

This url call a python function which return the images in a map client (OpenLayers). When moving in the map the user call a bunch of requests on this webservice like http://host.com/tiling/1/0/1/1.png, http://host.com/tiling/1/1/0/1.png, etc

I would like to use eventlet to thread the function of this webservice in order to generate images in parallel instead of one by a time.

Can someone help me doing this by providing cue about how to listen to a specific url (TMS url) and how to start threads on the function. Thanks a lot.

0 投票
4 回答
934 浏览

python - 如何将无限生成器提供给 eventlet(或 gevent)?

eventlet 和 gevent 的文档都有几个关于如何异步生成 IO 任务并在后面获得结果的示例。但到目前为止,所有应该从异步调用返回值的示例,我总是在所有对spawn(). 无论join()是 , joinall(), wait(), waitall()。这假设调用使用 IO 的函数是立即的,我们可以直接跳到我们正在等待结果的地方。

但在我的情况下,我想从一个可能很慢和/或任意大甚至无限的生成器中获得工作。

我显然不能这样做

因为mybiggenerator()可能需要很长时间才能用完。因此,我必须在仍在产生异步调用的同时开始使用结果。

这可能通常是通过队列资源完成的,但我不太确定如何。假设我创建了一个队列来保存作业,从一个名为 P 的 greenlet 推送一堆作业,然后从另一个 greenlet C 弹出它们。在 C 中,如果我发现队列是空的,我怎么知道 P 是否推送了每个作业它必须推动还是只是在迭代的中间?

或者,Eventlet 允许我循环 apile以获取返回值,但是我可以在不产生所有必须产生的作业的情况下开始这样做吗?如何?这将是一个更简单的选择。

0 投票
1 回答
398 浏览

python - 使用 python-eventlet 每分钟 100 万个工作

用例:

  1. 从一台服务器读取数据
  2. 在我的服务器上操作
  3. 将数据发布到其他服务器

但需要每分钟100万的吞吐量。

更多解释:-

假设有 10000 个客户,对于一个客户,我需要调用 5 个 API 并操作数据作为响应,操作后它将创建大约 30 个 API。我想将数据发布到其他服务器。

(假设:为 API 调用获取数据的服务器需要 250 毫秒,而我在其上发布数据的服务器需要 350 毫秒来发布 API 调用的数据。)

伪代码:

我们如何通过 Eventlet 编写代码,以便它可以并行执行这么多任务。还是 eventlet 能够执行这么多任务?

请回复。

0 投票
1 回答
843 浏览

python - 使用 futures.ProcessPoolExecutor 时 eventlet 挂起

我正在使用 Ubuntu 12.04 服务器 x64、Python 2.7.3、futures==2.1.5、eventlet==0.14.0

有人遇到同样的问题吗?

如果您取消注释该行,此代码将挂起。我只能通过按 Ctrl+C 来停止它。在这种情况下,将打印以下 KeyboardInterrupt 回溯:https://gist.github.com/max-lobur/8526120#file-traceback

这适用于 ThreadPoolExecutor。

任何反馈表示赞赏

0 投票
1 回答
1060 浏览

python - python线程和绿色线程中的锁定行为有什么区别?

通常的python线程和greenthread(eventlet)中的行为threading.Lock()之间有什么区别吗?threading.Semaphore()