10得票1回答
通过Gunicorn实现WebSockets和WSGI的共存

是否可以在一个(Flask)应用程序中同时使用Gunicorn处理WebSockets和常规的WSGI视图?我知道如何使用Gevent WSGI服务器使WebSockets工作,并且我可以使用Gunicorn运行常规的WSGI应用程序,使用gevent workers,但是当我尝试使用Guni...

69得票1回答
异步IO与Gevent的比较

背景 我曾经在一个使用Python2编写的系统上工作过,其中有很多自定义的同步I/O代码,并且使用线程进行扩展。某个时刻,我们无法进一步扩展它,意识到我们必须转向异步编程。 Twisted 是一个受欢迎的选择,但我们想避免其回调地狱。 它确实有@inlineCallbacks修饰符,有效...

8得票1回答
gevent如何与threading.local数据交互?

在 threading.local 中存储的数据是否对特定的协程唯一,还是仍然对 Python 线程唯一?

17得票4回答
Celery工作进程无任何错误地挂起

我有一个生产环境,用于运行Celery工人,以进行向远程服务进行POST/GET请求并存储结果的操作,它每15分钟处理约20,000个任务的负载。 问题在于工作人员无缘无故变得麻木,没有错误,也没有警告。 我尝试添加了多进程,但结果仍然相同。 在日志中,我看到执行任务的时间增加,就像s秒...

7得票1回答
gevent.http.HTTPServer API 建议使用流式传输,但实际上会缓存整个请求和响应。

gevent.http.HTTPServer 提供的API似乎支持双向流。请求对象不提供请求体作为简单字符串,而是提供一个名为 .input_buffer 的Python可迭代属性,而在另一方面,响应数据可以通过三个调用以块的形式传递: request.send_reply_start(20...

8得票3回答
类似于gevent中的cron(定时器)

如何在gevent中创建经典的定时器? 我目前正在使用gevent.spawn_later,但是否有一种类似于core.timer的方法,就像cron那样说“按间隔执行回调”? def callback(): # do something print '!' timer ...

7得票3回答
gevent-socketio、nginx和uwsgi在开发服务器上不能一起工作

我正在运行一个使用gevent-socketio的django项目。 由于某种原因,在我的开发服务器上,所有的websocket请求都返回一个101 pending消息,此时socketio将开始循环遍历所有其他协议,导致pending状态。 我的uwsgi日志中的错误是: 2013/0...

31得票3回答
Python - Flask-SocketIO 在线程中发送消息:并不总是有效

我遇到了这样一种情况:我从客户端接收到消息。在处理该请求的函数 (@socketio.on) 中,我想调用一个执行某些重型工作的函数。这不应该导致主线程被阻塞,而且应该在工作完成后通知客户端。因此我启动了一个新线程。 现在我遇到了一个非常奇怪的行为: 消息永远不会到达客户端。然而,代码却到达...

9得票1回答
如何使用uwsgi和gevent使kafka-python或pykafka成为异步生产者?

我的技术栈是使用gevents的uwsgi。我试图使用装饰器封装我的api端点,将所有请求数据(url、方法、正文和响应)推送到kafka主题中,但是它无法正常工作。我的理论是由于我正在使用gevents,并且尝试以异步模式运行这些内容,实际推送到kafka的异步线程无法与gevents一起运...

26得票1回答
如何在生产环境中运行gevent

我正在我的Python应用程序(基于Django)中使用gevent。然而,我现在想知道如何在生产环境中运行它。我应该使用什么服务器?在开发过程中,我使用gevent.pywsgi,但它是否可以用于生产?我也听说过gunicorn,但我看到了一些相当糟糕的基准测试。 注意:我需要SSL。