- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
如果您检查 Quart 库,app.run()
只是建立一些配置然后使用 asyncio.run(serve(self, config))
,其中serve来自from hypercorn.asyncio import serve
。
因此,即使您通过 python myapp.py
运行 Quart 应用程序,它是否已经在使用 Hypercorn 服务器?
特别是,这与通过 hypercorn myapp:app
运行有什么区别?
https://pgjones.gitlab.io/quart/deployment.html
It is not recommended to run Quart directly (via run()) in production. Instead it is recommended that Quart be run using Hypercorn or an alternative ASGI server. Hypercorn is installed with Quart and is used to serve requests by default (e.g. with run()).
所以听起来,尽管 Hypercorn 默认使用 run()
来处理请求,但不建议使用 run()
?还有其他人感到困惑吗?
最佳答案
So even if you run a Quart app via python myapp.py, isn't it already using a Hypercorn server?
是的。
In particular, what's the difference between this and running via hypercorn myapp:app?
我想为开发保留 run
方法,这样它可以默认做出对开发有利但对生产不利的决策。目前的一个例子是 run
方法默认使用重新加载器(每当代码更改时重新加载应用程序),这在开发时很好,但在生产中存在性能问题。另一个例子是 run
方法不会使用多个 worker,这再次导致生产性能变差。
(我是Quart的作者)
关于server - 为什么用 Hypercorn 运行 Quart 应用程序/它不是自动的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59854870/
如果您检查 Quart 库,app.run() 只是建立一些配置然后使用 asyncio.run(serve(self, config)) ,其中serve来自from hypercorn.async
我是一名优秀的程序员,十分优秀!