问题标签 [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.
python - 我将如何与 gevent 创建类似“Omegle”的随机聊天?
我已经搜索了 gevent 的教程和文档,但似乎没有很多。我已经编写 Python 代码好几年了,我也可以编写 PHP + JavaScript + jQuery。
那么,我将如何创建 Omeglish 聊天,其中一个随机人连接然后等待另一个人连接?我知道 Omegle 使用 gevent,但我的网站必须同时容纳 200 - 1000 人。
除了服务器端,还应该有功能齐全的客户端,我认为它应该使用 jQuery/JavaScript 创建。
我在编码部分需要一点帮助。我可以很好地编写 Python 代码,但我不知道如何制作这种聊天系统,也不知道什么是最好的 Python 库。
图书馆不一定是 gevent,但我听说它非常适合这样的东西。谢谢。
python - 成功运行 py.test 后模块“线程”中的 KeyError
我正在使用 py.test 运行一组测试。他们通过。伊皮!但我收到这条消息:
我应该如何去追踪它的来源?(我没有直接使用线程,而是使用 gevent。)
python - 删除 telnet 会话中的输入行
是否可以从缓冲区中删除 telnet 会话中的输入行,所以当您按下回车键时,您键入的文本会被删除,但仍会发送到 telnet 服务器?
我知道有一种方法可以发送某个字符,将光标移动到行首,然后用新的字符覆盖该行,但是由于新的行字符被放入缓冲区,我不能过去. 有没有办法解决这个问题?
示例:(第二行是用户输入)
然后按回车键,屏幕缓冲区显示:
更新:
我认为关键是将telnet客户端设置为不回显本地输入的某种模式。我发现向客户端发送一些魔法字符可以改变模式。我找到了这个例子,但我不知道它是什么意思,但它阻止了输入在 telnet 客户端中显示。然而,输入永远不会发送到服务器,所以它只是答案的一半。
也许是因为我正在逐行读取输入。我希望它被逐字符读取。不知道如何修改它来做到这一点:
python - PyPy 和 PyPy + greenlet 中的 Stackless - 区别
新版本的 PyPy 附带集成的Stackless。据我所知,捆绑的 Stackless 与 2001 年的原始 Stackless 不同,并有延续。所以主要是带有调度程序的绿色线程框架。
Greenlet是 Stackless 的衍生版本,它提供 Stackless 绿色线程功能作为扩展模块。
从PyPy使用“本机” Stackless比使用PyPy + greenlet + 一些调度程序(例如:gevent)有什么好处吗?或者问题是我不能在 PyPy 中使用这些类型的扩展?更具体地说:我知道 PyPy 有自己的 greenlet 实现(基于continulet)。但我很好奇将外部greenlet 与gevent 和PyPy 中的内部链接的可能性。
PyPy 是否带有用于 Stackless 的异步 IO 库而不是标准库?
我知道stackless本身和python的其他异步轻线程扩展(eventlet、gevent、twisted ...)。所以我不是在寻找它们之间的差异,而是来自 pypy 和无堆栈构建的优势。
python - gevent.WSGIServer 请求方法之谜
运行 gevent 的 WSGIServer 时,我遇到了一些非常奇怪的行为。似乎通过的每个请求的方法都被错误地解释了..
如果我发送以下请求:
这是控制台中显示的内容:
为了完整起见,这是我正在运行的脚本:
会发生什么?
编辑:
我正在使用 gevent 版本:0.13.0
python - Python、gevent、urllib2.urlopen.read()、下载加速器
我正在尝试为 Linux 构建下载加速器。我的程序使用 gevent、os 和 urllib2。我的程序收到一个 URL 并尝试同时下载该文件。我所有的代码都是有效的。我唯一的问题是 urllib2.urlopen.read() 阻止我同时运行 .read() 函数。
这是向我抛出的异常。
我的程序通过调用从 URL 获取文件字节大小来工作:
并将文件大小除以除数,从而将下载过程分成几部分。在这个例子中,我将下载分成 10 个部分。
每个greenlet都以这种方式运行一个命令:
这是我在 Pastie 上托管的代码的链接: http : //pastie.org/3253705
感谢您的帮助!
仅供参考:我在 Ubuntu 11.10 上运行。
python - 使用 Gevents 异步生成函数
我正在接受 Gevents(用于异步功能的 python 库)并编写了一个非常小的程序来了解它是如何工作的,但结果非常令人困惑。下面是代码
无论我运行多少次,我都会得到输出
有一个类似的例子,作为 gevent教程的一部分。
异步功能非常明显。我所做的就是在代码中添加睡眠功能。输出不应该是这样的吗?
python - 使用带有线程的 gevent 猴子补丁使线程连续工作
我正在使用gevent,我正在修补所有内容。
似乎猴子修补会导致线程连续工作。
我的代码:
所以线程没有按预期工作。
但是,如果我删除monkey.patch_all()
它,它工作正常。
问题是我需要monkey.patch_all()
使用 gevent (现在显示在上面的代码中)
我的解决方案:
我改变了
至
所以我没有修补线程。
python - 即使所有队列项目都已用尽,Gevent 线程也未完成
我正在尝试在 Gevent 中设置一个简单的生产者-消费者系统,但我的脚本没有退出:
我无法找到关于使用 Gevent 的好的示例/教程,所以我在上面粘贴的内容是我从互联网上拼凑出来的。
多个工作人员被激活,项目进入队列,但即使队列中的所有内容都完成,主程序也不会退出。我必须按CTRL ^ C
。
我究竟做错了什么?
谢谢。
附带说明:如果我的脚本有什么可以改进的地方,请告诉我。简单的事情,例如检查队列何时为空等。