gevent相关内容

何时在Gevent中使用Threadpool

我注意到Gevent具有线程池对象.有人可以向我解释何时使用线程池以及何时使用常规池吗?gevent.threadpool和gevent.pool有什么区别? 解决方案 当您有一段需要长时间运行(几秒钟)并且不会导致切换greenlets的python代码时,所有其他greenlets/gevent作业将“饿死"并且没有计算时间,并且看起来您的应用程序“挂起". 如果将这个“繁重的" ..
发布时间:2021-05-10 19:24:13 Python

动态更改日志级别,而无需重新启动应用程序

是否可以在python中使用fileConfig更改日志级别而无需重新启动应用程序.如果无法通过fileConfig实现,是否还有其他方法可以得到相同的结果? 更新:这是针对服务器上运行的应用程序,我希望系统管理员能够更改应用程序在运行时选择的配置文件,并动态更改日志级别.当时我正在使用gevent,因此我将代码添加为使用inotify来选择对配置文件进行更改的答案之一. 解决方案 ..
发布时间:2021-05-10 19:24:10 Python

将多处理队列/字典/等等传递给绿色线程

将多处理对象(队列,字典等)传递给多个gevent线程是否安全?由于它们实际上不是并发运行的,所以我认为没有问题.但是,我知道gevent不应该与多处理特别兼容. 解决方案 不幸的是,目前看来 gevent 与 multiprocessing 中的对象不兼容: 这很危险. mp.Queue 和其他mp数据结构在内部利用信号量之类的东西: https://github.com/pyth ..
发布时间:2021-05-10 19:24:07 Python

在Grequests任务中添加进度反馈

我遵循了grequests 用法示例,但是我试图添加一些进度反馈.已完成请求的百分比.我该如何实现? 导入grequests网址= ["http://www.heroku.com",'http://python-tablib.org',"http://httpbin.org",'http://python-requests.org','http://kennethreitz.com']def反馈 ..
发布时间:2021-04-23 20:40:02 Python

芹菜事件池-ConcurrentObjectUseError

我有一个celery worker正在使用 gevent 池,该池执行HTTP请求并添加带有页面源的另一个celery任务. 我将Django,RabbitMQ用作代理,将Redis用作celery结果后端,Celery 4.1.0. 该任务具有 ignore_result = True ,但我经常收到此错误 ConcurrentObjectUseError:该套接字已被另一个Gree ..
发布时间:2021-04-21 19:53:10 Python

芹菜工人挂起而没有任何错误

我有一个运行芹菜工作者的生产设置,用于向远程服务发出POST/GET请求并存储结果,它每15分钟处理大约20k任务. 问题在于工人无缘无故麻木,没有错误,没有警告. 我也尝试过添加多处理,同样的结果. 在日志中,我看到执行任务的时间增加了,就像在s中成功 有关更多详细信息,请参见 https://github.com/celery/celery/issues/2621 ..
发布时间:2021-04-15 20:20:35 Python

为什么gevent.Timeout()无法引发异常

将gevent.Timeout(0.1)设置为tt: time.sleep(1) 高于,不引发异常 将gevent.Timeout(0.1)设置为tt: gevent.sleep(1) 抛出gevent.timeout.Timeout:0.1秒 time.sleep()和gevent.sleep()有所不同! 解决方案 time.sleep()实际上暂停所有 ..
发布时间:2020-11-13 22:25:28 其他开发

如何将zerorpc作为greenlet运行?

我想在同一循环中将zeroRPC服务器作为greenlet与其他gevent greenlet一起运行. ZeroRPC的文档有些许不足. 这是启动zeroRPC服务器的建议方法: s = zerorpc.Server(Cooler()) s.bind("tcp://0.0.0.0:4242") s.run() 要将服务器作为Greenlet运行,我将运行打包在Greenlet中: ..
发布时间:2020-11-13 22:25:24 Python

Python3中的Gevent支持

在与Python2.7成功结合使用后,我试图在Python3.4中安装和使用Gevent.但是,使用Python 3时,导入本身出现错误.仍然在python3中不受支持吗? 使用gcc 4.9,并使用pip3 install gevent安装. import gevent File "/usr/local/lib/python3.4/dist-packages/gevent/__i ..
发布时间:2020-11-13 22:25:22 Python

为什么在此gevent程序中仅与Redis建立了一个连接?

我正在使用gevent来构建服务器,该服务器执行一些redis任务并将结果返回给客户端.但是性能很差.经过一番研究,我发现与Redis仅存在一种连接.看起来只有一个绿色的小精灵.这是我的程序: #!/usr/bin/env python from gevent import monkey monkey.patch_all() import gevent from gevent.wsgi im ..
发布时间:2020-11-13 22:25:17 Python

关闭基于socketserver的Python 3服务器挂起

我正在使用Python 3中的线程化SocketServer在“简单"服务器上工作. 为此,我在实施关闭时遇到了很多麻烦.我在Internet上发现的以下代码最初可以正常工作,但在通过telnet从客户端发送一些命令后便会停止工作.一些调查告诉我它挂在线程中._shutdown...线程._wait_for_tstate_lock,但是到目前为止,这还没有敲响. 我的研究告诉我,关于如 ..
发布时间:2020-11-13 22:25:11 Python

发生python ssl eof违反协议,wantwriteerror,zeroreturnerror

我正在使用gevent来运行许多celery任务(20,000个)(也为所有猴子打补丁).这些任务中的每一项都需要通过adwords等第三方服务来提取数据. 由于潜在的SSL错误,我一直在使任务失败.以下是一些异常的堆栈跟踪(没有特殊顺序,这些是来自单独任务的失败).偶尔也会出现WantWriteError和ZeroReturnError,但EOF错误似乎最多. 在使用不同的客户端库( ..
发布时间:2020-11-13 22:25:02 Python

Python错误:正在进行异步查询时,无法使用execute

如何防止错误"ProgrammingError: execute cannot be used while an asynchronous query is underway"?从文档中说,如果我正在使用像gevent之类的协程支持,则应该使用psycopg2.extras.wait_select,但是使用它时仍然会出现该错误.我隔离了以下代码段中出现的错误. con = psycopg2. ..
发布时间:2020-11-13 22:25:00 Python

node.js socket.io-client + python socketio

我正在尝试使用Socket.IO来允许我的Node.JS应用与Python后端进行通信.我希望Node.JS充当客户端,Python充当服务器,所以除了gevent-socketio python模块之外,我还使用了socket.io-client Node.JS模块. https://github.com/LearnBoost/socket.io-client https://github ..
发布时间:2020-11-13 22:24:55 Python

从Flask视图发送WebSocket消息

我正在尝试制作一个使用WebSockets的Flask应用. Flask-sockets中的示例有效,但是如何从常规视图发送消息? /p> 与Flask-SocketIO如何使用.emit()和.send()方法类似. 在下面的示例中(从Flask-Sockets示例中),我希望能够从hello-视图中广播消息. from flask import Flask from flask_ ..
发布时间:2020-11-13 22:23:45 Python

cherrypy作为gevent-socketio服务器

我刚刚开始使用gevent-socketio,这太好了! 但是我一直在使用聊天教程中的默认socketioserver和socketio_manage,并且想知道如何将socketio与cherrypy集成. 本质上,我该如何解决这个问题: class MyNamespace(BaseNamespace):... def application(environ, start_r ..
发布时间:2020-11-13 22:23:43 Python

uWSGI,gevent,一些redis调用以及如果超过90毫秒则如何使帖子超时

下面是我装在瓶子里的代码.我在gevent循环中使用uWSGI.从请求开始,如果整个请求花费的时间超过90毫秒,则需要返回false. 我不知道如何使用gevent在90毫秒后超时.阻塞代码少于2毫秒.它的redis调用就是问题所在.在没有负载或负载很小的情况下...整个请求花费的时间不到20ms.在高负载下,redis调用可能需要更长的时间...如果需要更长的时间,我需要超时.因此,从第一个re ..
发布时间:2020-11-13 22:22:36 Python

Celery + gevent仅使用一个CPU内核

我在用gevent运行Celery时遇到了性能负载问题,一切都在我的VPS的同一内核上运行. 这里是4个Celery实例的屏幕快照,每个实例具有20个gevent并发性.如何解决此问题?我在做什么错了? 这是我的第一个任务: def update_sender(): items = models.Item.objects.filter(active=True).all() ..
发布时间:2020-11-13 22:22:33 Python