为什么要在Hypercorn上运行Quart应用程序/它不是自动的?

时间:2020-01-22 07:44:10

标签: server python-asyncio python-3.7 quart hypercorn

如果您检查 Quart 库,call execute_command_line('mkdir -p ./' // adjustl(trim(dirName)),CMDSTAT=CSTAT ) if ((CSTAT > 0) .OR. (CSTAT < 0)) then call mpiABORT('mkdir on new time level failed ') end if 只会建立一些配置,然后使用app.run(),而发源于asyncio.run(serve(self, config))

因此,即使您通过from hypercorn.asyncio import serve运行 Quart 应用,它是否还已经使用 Hypercorn 服务器?

尤其是和通过python myapp.py运行有什么区别?

https://pgjones.gitlab.io/quart/deployment.html

不建议在生产中直接运行Quart(通过run())。相反,建议使用Hypercorn或备用ASGI服务器运行Quart。 Hypercorn与Quart一起安装,默认情况下用于服务请求(例如,与run()一起使用)

听起来,即使 Hypercorn 在默认情况下通过hypercorn myapp:app来处理请求,还是不建议使用run()?还有其他人感到困惑吗?

1 个答案:

答案 0 :(得分:3)

因此,即使您通过python myapp.py运行Quart应用程序,它是否也已使用Hypercorn服务器?

是的

特别是,这与通过hypercorn myapp:app运行有什么区别?

我想保留run方法用于开发,以便默认情况下可以做出对开发有利但对生产不利的决策。目前的示例是run方法默认情况下使用重载程序(只要代码更改,就重载应用程序),这在开发时非常有用,但在生产中会出现性能问题。另一个例子是run方法不会使用多个工作程序,这再次导致生产性能下降。

(我是Quart的作者)