gpt4 book ai didi

python - 非阻塞 CherryPy 不接收任何东西

转载 作者:行者123 更新时间:2023-11-28 17:46:00 28 4
gpt4 key购买 nike

我正在尝试使用 cherrypy.engine.start 而不是 cherrypy.quickstart 来运行 cherrypy。那是因为我想在非阻塞状态下运行 cherrypy,以在我使用 py.test 的功能测试中启动和停止 Web 服务器。

这很好用:

cherrypy.quickstart(WebServerTest(None), config=testconf)

对 curl 的响应是:

curl --head http://127.0.0.1:1026/index HTTP/1.1 200 OK
Date: Thu, 08 Aug 2013 12:54:37 GMT
Content-Length: 0
Content-Type: text/html;charset=utf-8
Server: CherryPy/3.2.2

但它会阻止脚本的其余部分执行。

但是这不起作用:

testconf = path.join(path.dirname(__file__), 'webservertest.conf')
web_server = WebServerTest(None)
cherrypy.tree.mount(web_server, "", config=testconf)
cherrypy.engine.start()
time.sleep(60)
cherrypy.engine.stop()

对 curl 的响应是:

curl --head http://127.0.0.1:1026/index
curl: (7) couldn't connect to host


在 cherrypy.engine.start 之后添加 cherrypy.engine.block() 并不能解决问题。


那么如何让它与 cherrypy.engine.start() 一起工作呢?


webservertest.conf 配置文件是:

[global]
server.socket_host = "127.0.0.1"
server.socket_port = 1026
server.thread_pool = 10

最佳答案

您还需要将 conf 传递给 cherrypy.config.update(conf)。这是用于全局配置(包括您的服务器主机和端口),而 tree.mount 调用仅为该特定应用程序设置配置。阅读 quickstart 的源代码以查看所有详细信息。

关于python - 非阻塞 CherryPy 不接收任何东西,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18127415/

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