gevent相关内容

GEvent:催生大量绿皮书的不利因素是什么?

从我在评论中的问题到this answer到问题"Gevent pool with nested web requests": 假设一个人有大量的任务,使用gvent.spawn(...)同时生成所有它们,而不是使用GEvent池和pool.spawn(...)要限制并发小纸币的数量? 换一种说法:即使要解决的问题不是必需的,但对gvent.pool进行“限制并发”有什么好处吗? ..
发布时间:2022-04-10 12:08:32 Python

从 gevent-subprocess 获取实时标准输出?

我正在尝试通过 POPEN 获取进程的标准输出,只要它存在.使用 gevent 1.0 readline() 和 read() 仍然会阻塞进程并等待进程完成.有什么线索吗?是的,我到处寻找一个简单的解决方案.不用线程就必须是可能的,对吧? 解决方案 我用一个小技巧解决了这个问题.每当将一行写入标准输出时,只需使用 self.stream.flush() 和一个辅助类刷新 Python 的行 ..
发布时间:2022-01-18 16:05:56 Python

Gevent 猴子补丁破坏多处理

我正在尝试使用多处理的池来运行一组进程,每个进程都将运行一个 gevent 的 greenlets 池.这样做的原因是有很多网络活动,但也有很多 CPU 活动,所以为了最大化我的带宽和我所有的 CPU 内核,我需要多个进程和 gevent 的异步猴子补丁.我正在使用多处理的管理器创建一个队列,进程将访问该队列以获取要处理的数据. 这是代码的简化片段: 导入多处理从 gevent 导入猴子m ..
发布时间:2022-01-12 12:28:14 Python

无法显示帧变量(PyCharm 远程调试器)

有什么问题? 我在 PyCharm(2016.1.4 版)中使用远程解释器(不是调试服务器!)进行远程调试,如下所述:jetbrains 网站. 当我在调试模式下运行时,程序应该在断点处停止.但是,在“变量"窗口中不显示变量.相反,我收到以下错误: 无法显示帧变量 我猜这是同样的问题:链接 我尝试了什么? 我发现这个 链接 有一个可能的解决方案,但它对我不起作用 ..
发布时间:2022-01-08 10:02:02 Python

grequests 以什么方式异步?

我一直在使用python请求库有一段时间了,最​​近需要异步发出请求,这意味着我想发送HTTP请求,让我的主线程继续执行,并有一个回调请求返回时调用. 当然,我被引导到 grequests 库(https://github.com/kennethreitz/grequests),但我我对这种行为感到困惑.例如: 导入 grequestsdef print_res(res):从 pprint ..
发布时间:2021-12-31 20:08:29 Python

Python - Flask-SocketIO 从线程发送消息:并不总是有效

我遇到了收到客户消息的情况.在处理该请求的函数 (@socketio.on) 中,我想调用一个完成一些繁重工作的函数.这不应该导致阻塞主线程,并且一旦工作完成就会通知客户端.于是我开始了一个新话题. 现在我遇到了一个非常奇怪的行为:消息永远不会到达客户端.但是,代码会到达发送消息的特定位置.更令人惊讶的是,如果线程中除了向客户端发送消息之外没有发生任何事情,那么答案实际上会找到通往客户端的路 ..
发布时间:2021-12-30 22:15:21 Python

redis + gevent - 性能不佳 - 我做错了什么?

我刚刚编写了一段简单的代码来对 Redis + gevent 进行性能测试,以了解异步如何帮助提高性能,但我惊讶地发现性能不佳.这是我的代码.如果你去掉前两行来修补这段代码,那么你将看到“正常执行"时间. 在 Ubuntu 12.04 LTS 虚拟机上,我看到时间为 没有猴子补丁 - 54 秒使用猴子补丁 - 61 秒 我的代码/方法有问题吗?这里有性能问题吗? #!/usr/ ..
发布时间:2021-12-28 09:59:20 Python

如何通过 websockets 发送 pygame 图像?

我目前正在尝试编写一些代码,让网站可以查看我的网络摄像头.我大致遵循了本网站上链接的教程,除了使用 Python 和 pygame 而不是 Processing. 目前,我的代码正在抓取一个 pygame 图像(最初是一个 SimpleCV 图像),尝试将其转换为 jpg 格式,然后通过 websockets 将其发送到客户端,然后将其显示在 img 中 标签.但是,我似乎无法弄清楚如何将 ..
发布时间:2021-12-25 14:13:32 Python

为什么 gevent-websocket 是同步的?

我正在玩 gevent 和 websockets.这是一个简单的回显服务器: from gevent.pywsgi import WSGIServer从 geventwebsocket.handler 导入 WebSocketHandler从 gevent 导入睡眠从日期时间导入日期时间def app(环境,start_response):ws = 环境['wsgi.websocket']而真: ..
发布时间:2021-12-25 14:13:09 Python

带有嵌套 Web 请求的 Gevent 池

我尝试组织最多 10 个并发下载的池.该函数应下载基本 url,然后解析此页面上的所有 url 并下载每个 url,但同时下载的 OVERALL 数量不应超过 10. from lxml import etree导入 gevent从 gevent 进口猴子,游泳池进口请求猴子.patch_all()网址 = ['http://www.google.com','http://www.yandex. ..
发布时间:2021-12-15 15:34:12 Python

具有多线程的 Python 请求

过去两天我一直在尝试构建具有多线程功能的抓取工具.不知怎的,我还是无法应付.起初我尝试使用线程模块进行常规多线程方法,但它并不比使用单线程快.后来我了解到请求是阻塞的,多线程方法并没有真正起作用.所以我一直在研究并发现了 grequests 和 gevent.现在我正在使用 gevent 运行测试,它仍然不比使用单线程快.我的编码有问题吗? 这是我班级的相关部分: 导入 gevent.mo ..
发布时间:2021-12-14 20:33:49 Python

Flask 中的 Websocket

我目前正在研究 Python 中的 websocket 支持,但对这些产品有些困惑. 一方面可以使用 Flask + gevent.另一方面,uwsgi 有 socket 支持,最后有一个捆绑 uwsgi 和 gevent 的扩展. 仅使用其中一种实现 websockets 有什么问题?混合它们我能赢什么? 改变问题 添加 gevent 对线程 uwsgi 没有什么作用? ..
发布时间:2021-12-14 10:55:29 Python

如何将远程 IP 传递给代理服务?- Nginx

我在本地主机中运行服务 127.0.01:8000 我通过使用代理: proxy_pass http://127.0.0.1:8000; 问题是我需要将用户的 IP 地址传递给服务. 有什么想法吗? 解决方案 我通过设置自定义标头将真实 IP 发送给 django: proxy_set_header X-Real-IP $remote_addr; 那些标头在 r ..
发布时间:2021-12-13 22:17:22 Python

在python中同时调用一个api

我需要与 api 交谈以获取有关团队的信息.每个团队都有一个唯一的ID.我用那个 id 调用 api,我得到了每个团队的球员列表(字典列表).播放器的一个键是另一个 ID,我可以用它来获取有关该播放器的更多信息.我可以捆绑所有这些 player_id 并调用 api 以在一个 api 调用中获取每个玩家的所有附加信息. 我的问题是:我预计团队的数量会增长,可能会非常大.此外,每支球队的球员人 ..
发布时间:2021-11-15 03:58:05 Python

套接字线程在超时块中挂起

我正在尝试计算从给定套接字接收所有数据所花费的时间,因此我在使用'with Timeout(5,False)'等待5秒钟的数据,然后保存上次接收时间.但是,当我提供多个线程时,当前代码只会停滞不前.我想帮忙弄清楚为什么它应该在超时时挂起. #!/usr/bin/env python导入系统导入时间从gevent导入套接字,超时从gevent.pool导入池def calc_wait(网站):数据 ..
发布时间:2021-05-10 19:24:30 Python

使用gevent和grpc扩展问题

由于已解决gevent/grpc兼容性问题,因此我尝试使用它. 我用示例脚本对其进行了测试 来自gevent导入猴子的 monkey.patch_all()导入grpc._cython.cygrpcgrpc._cython.cygrpc.init_grpc_gevent()进口grpc导入时间导入系统频道= grpc.insecure_channel('本地主机:5000')存根= he ..
发布时间:2021-05-10 19:24:22 其他开发

等到几个小菜之一完成

我有两个从两个不同的连接接收数据的函数,在从其中一个连接获得结果后,我应该关闭两个连接. def first():gevent.sleep(randint(1,100))#我不知道它将工作多少时间返回'foo'def second():gevent.sleep(randint(1,100))#我不知道它将工作多少时间返回“酒吧" 然后我生成每个函数: lst = [gevent.spa ..
发布时间:2021-05-10 19:24:20 Python