问题标签 [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 投票
4 回答
227427 浏览

python - Python中的字节数组

如何在 Python 中表示一个字节数组(比如在 Java 中使用 byte[])?我需要用 gevent 通过网络发送它。

0 投票
2 回答
10944 浏览

python - Gevent Pywsgi 服务器 - 多处理?

以下代码(取自此处:https : //bitbucket.org/denis/gevent/src/6c710e8ae58b/examples/wsgiserver_ssl.py)实现了一个极快的由greenlet驱动的wsgi网络服务器:

但是,这只在一个核心上运行。您将如何修改它以利用多个进程?不是在寻找涉及 gunicorn 的答案,而是在寻找更简单的东西。

暗示

这是一个使用 gevent 和多处理的代码示例,但我仍然无法弄清楚如何使用 WSGI 来实现它(取自https://gist.github.com/1169975):

0 投票
1 回答
2651 浏览

python - 使用 Gevent / Tornado 和 Flask 的 Socket.io 处理程序

任何人都可以向我展示如何使用 gevent 和烧瓶处理通用 socket.io 连接(取决于客户端浏览器,可能是 websockets 或 xhr-longpolling 等)的示例,或者使用龙卷风作为异步服务器的烧瓶谢谢你

0 投票
2 回答
6319 浏览

python - multiprocessing.Queue 是否与 gevent 一起使用?

有人知道这段代码有什么问题吗?它只是永远“加载”。没有输出。“站点”是几十个字符串的列表。

0 投票
1 回答
2992 浏览

python - 如何在 Gevent 中使用日志记录?

我有一个像这样的代码:

但是当我运行它时,我的日志没有显示在 shell 中。有任何想法吗?有没有更好的方法在基于 gevent 的协程中进行日志记录?

0 投票
10 回答
37802 浏览

python - 如何在 Mac OS X Lion 上安装 Python 库“gevent”

Python librarygevent版本 0.13.6(PyPI 上的当前版本)不会pip install在 OS X Lion、Python 2.7(可能还有其他版本)上运行。它在 Snow Leopard 上运行良好。

我怎样才能安装这个库?

如果可以使用pip install,而不是手动或自定义过程来完成,则可以加分,因为这样它将与自动构建很好地配合。

这是我的pip install输出:

0 投票
1 回答
3156 浏览

python - psycopg2 + pgbouncer。带有 gevent 错误的异步模式

我有一个应用程序 psycopg2 + pgbouncer + gevent。异步应用,即一个进程服务多个请求。对数据库的异步访问出现在最新版本的 psycopg2 中,如果不是 2.2 的话。但只是在这个版本中引入了与 pgbouncer 有很多断开连接的错误。在 pgbouncer 日志中有条目:

也许有一些方法可以配置 pgbouncer,以避免有关不干净服务器的消息? 关于 bug 的信息,比如有一个补丁可以治愈某些东西。来自 ubuntu 存储库的所有软件包,在生产机器上应用补丁 - 这不是一个好的选择。我的配置 pgboucner:

0 投票
1 回答
2920 浏览

python - 带有 redis pubsub 的 Django/gevent socket.IO。我把东西放在哪里?

我有一个孤立的 python 脚本,它简单地从 Twitter 的流 API 捕获数据,然后在收到每条消息时,使用它发布到频道“tweets”的 redis pubsub。这是那个脚本:

我的服务器端 socket.io 实现是使用 django-socketio(基于 gevent-socketio)https://github.com/stephenmcd/django-socketio完成的,它只提供了一些辅助装饰器以及一个 broadcast_channel 方法。因为它是在 django 中完成的,所以我只是简单地将这段代码放在 views.py 中,以便它们被导入。我的views.py代码:

客户端 socket.io JavaScript 简单地连接并订阅频道“livestream”,并将任何接收到的消息捕获到该频道:

这段代码的明显问题是,每次向页面打开新用户或浏览器窗口时,都会产生一个新的 _listen 方法,并为每个用户订阅和广播推文,从而导致客户端收到重复的消息。我的问题是,将 _listen 方法放在哪里合适,以便它只创建一次,而不管客户端的数量如何?另外,请记住,broadcast_channel 方法是套接字实例的方法。

0 投票
1 回答
883 浏览

python - 如何通过gevent的事件实现comet

有一个关于如何使用 gevent + flask 实现彗星的演示。

它使用 gevent 的事件类。如果任何人发布消息,聊天室中的任何人都会收到该消息。

如果我只是想让某人收到消息怎么办?我应该使用 gevent.event.AsyncResult 吗?如果是这样,该怎么做?

0 投票
1 回答
985 浏览

python - 如何使用带有 gevent 的 redis 或 Python 中的线程来为多个任务构建我的应用程序

我有一个通过 redis pubsub 实时发送金融报价数据的过程。现在我希望我的 Python 应用程序处理输入数据 (json) 以进行移动平均等实例计算。我想通过 redis 将结果发送回其他任务(根据第一个任务的结果进行进一步计算)。此外,我想每天或每秒定期触发一些任务。由于这个复杂且无法预见的结构问题,我偶然发现了 gevent、Celery 或只是 Threads 等解决方案。

但我想知道的是,我有哪些选择以正确的方式做到这一点?如何以最有效的方式通过 Worker/Task 构建我的 redis pubsub?因此,欢迎提出建议,包括库(如果您使用过任何提到的请分享您的经验)、技术(Python 的结构最佳实践)、如何利用 redis 的 pubsub 以最好的方式完成工作。