问题标签 [gevent]

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 投票
2 回答
10558 浏览

python - 尝试在 Python 中使用 gevent 库:“ImportError: cannot import name core”

我正在尝试在我正在编写的 Python 应用程序中使用gevent库。但是,easy_install 和手动安装似乎都失败了。有什么建议么?

我的“构建”和“安装”命令的完整转储是:

0 投票
1 回答
76 浏览

javascript - 从 GEvent 获取“i”的值

我正在尝试在按下地图时为地图上的每个图标添加一个事件侦听器。我将信息存储在数据库中,我想要检索的值是“i”,但是当我输出“i”时,我得到它的最后一个值,即 5(地图上绘制了 6 个对象)

下面是代码,获取 i 值的最佳方法是什么,而不是对象本身。

0 投票
2 回答
8780 浏览

mysql - 如何让 Django 使用不受支持的 MySQL 驱动程序,例如 gevent-mysql 或 Concurrence 的 MySQL 驱动程序?

我对在 Concurrence 或 gevent 等异步框架上运行 Django 很感兴趣。这两个框架都带有自己的异步 MySQL 驱动程序。

问题是 Django 只官方支持 MySQLdb。我需要做什么才能使 Django 与 gevent 或 Concurrence 附带的 MySQL 驱动程序一起工作?

是否有我可以遵循的分步指南?这是一项重大事业吗?

谢谢。

0 投票
1 回答
1800 浏览

python - x86_64 上的 gevent 安装失败:“未定义符号:evhttp_accept_socket”

我正在尝试在全新的 EC2 CentOS 5.3 64 位系统上安装gevent 。

由于 yum 中可用的 libevent 版本对于另一个软件包(beanstalkd)来说太旧了,我libevent-1.4.13-stable使用以下命令手动编译/安装:

这是安装 gevent 的输出:

我在本地 VirtualBox 实例(32 位)上执行了完全相同的步骤,但没有看到任何错误。

我将如何解决这个问题?

0 投票
3 回答
7250 浏览

python - SSL 和 WSGI 应用程序 - Python

我有一个 WSGI 应用程序,我想放在 SSL 后面。我的 WSGI 服务器是gevent

在这种情况下,通过 SSL 为应用程序提供服务的好方法是什么?

0 投票
4 回答
20892 浏览

python - Eventlet 或 gevent 或 Stackless + Twisted、Pylons、Django 和 SQL Alchemy

我们将 Twisted 广泛用于需要大量异步 io 的应用程序。在某些情况下,东西是受 cpu 限制的,为此我们产生了一个进程池来完成工作,并拥有一个跨多个服务器管理这些进程的系统——所有这些都在 Twisted 中完成。效果很好。问题是很难让新的团队成员跟上进度。在 Twisted 中编写异步代码需要接近垂直的学习曲线。就好像人类天生就不会那样想。

我们可能正在考虑采用混合方法。也许将 xmlrpc 服务器部分和进程管理保留在 Twisted 中,并在代码中实现其他内容,至少在某种程度上看起来是同步的,而不是同步的。再说一次,我喜欢显式而不是隐式,所以我必须多考虑一下。无论如何到greenlets - 这些东西的效果如何?所以有 Stackless,正如你从我的盖伦特化身中看到的那样,我很清楚它在 CCP 的旗舰 EVE Online 游戏中的第一手使用取得了巨大成功。Eventlet 或 gevent 呢?好吧,目前只有 Eventlet 与 Twisted 一起工作。然而,gevent 声称更快,因为它不是纯 python 实现,而是依赖于 libevent。它还声称具有较少的特质和缺陷。事件据我所知,它由 1 个人维护。这让我有点怀疑,但所有伟大的项目都是这样开始的……然后是PyPy——我什至还没有读完那个——刚刚在这个线程中看到了它:Stackless 的缺点

太令人困惑了——我想知道到底该怎么做——听起来 Eventlet 可能是最好的选择,但它真的足够稳定吗?有没有人有这方面的经验?我们是否应该使用 Stackless,因为它已经存在并且是经过验证的技术 - 就像 Twisted 一样 - 它们确实可以很好地协同工作。但我仍然讨厌必须有一个单独的 Python 版本才能做到这一点。该怎么办....

不过,这个有点令人讨厌的博客文章对我来说是一针见血:Asynchronous IO for Grownups I don't get the Twisted is like Java remark as to me Java通常是你处于线程思维方式的地方,但无论如何。尽管如此,如果那个猴子补丁真的像那样工作,那么哇。哇!

0 投票
3 回答
1675 浏览

python - 捕获客户端断开连接的事件!- Gevent/Python

我正在使用长轮询与 gevent 聊天。等待在聊天中发布新消息时,我正在使用 Event.wait() 。


我想处理客户端与某些功能断开连接的情况:

例如返回“客户端已断开连接”作为其他聊天用户的消息


这可能吗?=)

0 投票
1 回答
594 浏览

python - 从 memcache 读取数据有时会失败

我编写了一个基于gevent的程序,它允许其 Web 客户端通过它快速交换消息(因此它就像一个集线器一样工作)。

由于我目前只支持轮询机制,所以我编写了它来将需要传递给特定客户端的消息存储在服务器端的“收件箱”中。虽然客户端列表存储在 MySQL 中,但这些收件箱存储在 memcache 中以便更快地访问。当客户端连接到集线器时,它会提取其收件箱中累积的所有消息。

问题
问题是,收件人在提取收件箱的内容时没有收到他们的消息——他们收到一个空数组。
更让我困惑的是,如果我重新启动集线器,客户端未收到的消息将突然实体化并传递到它们的目的地。
如果我的代码有明显的缺陷,你能指出我吗?你对这种效果有什么解释吗?

push是执行以将消息放入客户端收件箱的方法。pull是将所有累积消息的列表作为列表检索并返回给主处理函数的方法。

0 投票
1 回答
10376 浏览

python - 将 SQLalchemy 与 gevent 一起使用是否安全?

我知道一些提供与外部服务连接的数据库驱动程序和其他库与基于协程的网络库不兼容。但是,我无法确定 SQLAlchemy 是否可以安全地与此类库(即gevent)一起使用,以及是否应应用任何变通方法来排除可能的错误。

你能告诉我,或者给我指出一篇我可以阅读这些信息的文章吗?如果提供的答案还包含解释为什么可以或为什么不可以的机制,则额外的“谢谢”。:-)

0 投票
3 回答
14284 浏览

python - Python:单元测试基于套接字的代码?

我正在编写一个gevent.socket用于通信的 Python 客户端+服务器。有什么好的方法可以测试代码的套接字级别的操作(例如,验证带有无效证书的 SSL 连接是否会被拒绝)?或者只是spawn一个真正的服务器最简单?

编辑:由于涉及复杂的交互,我不相信“天真的”模拟足以测试 SSL 组件。我错了吗?还是有更好的方法来测试 SSL 的东西?