gpt4 book ai didi

cherrypy - 在 gevent wsgi 服务器上运行 Cherrypy 应用程序

转载 作者:行者123 更新时间:2023-12-02 06:29:15 26 4
gpt4 key购买 nike

我有一个现有的cherrypy应用程序,但我想知道是否可以在gevent wsgi服务器上运行它。我想我可以,但我无法访问 Linux 服务器来测试 gevent,并且无法让它在我的 Mac 上运行。

我的印象是这是可能的,因为双方都遵循 wsgi 规范。

有人试过这个吗?

我想一个例子如下:

import cherrypy 
from gevent import wsgi

class Root(object):
def index(self):
return "hi!"
index.exposed = True

app = cherrypy.tree.mount(Root(), '/')
wsgi.WSGIServer(('', 8088), app).serve_forever()

最佳答案

这个示例将一直有效,直到您在cherrypy处理程序中遇到greenlet switch!因此,如果您在处理程序内使用 gevent 进行异步通信,这将会失败。

cherrypy 使用全局对象来存储在cherrypy/__ init__.py:~350 中找到的响应和 header :

# Create request and response object (the same objects will be used
# throughout the entire life of the webserver, but will redirect
# to the "serving" object)
request = _ThreadLocalProxy('request')
response = _ThreadLocalProxy('response')

如果您暂停一个请求并且 gevent 切换到处理下一个请求,它将覆盖全局对象中的内容长度 header ,并且您将在客户端遇到奇怪的错误。

关于cherrypy - 在 gevent wsgi 服务器上运行 Cherrypy 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5073499/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com