Зачем запускать приложение Quart с Hypercorn / не правда ли c? - PullRequest
0 голосов
/ 22 января 2020

Если вы проверяете библиотеку Quart , app.run() просто устанавливает некоторую конфигурацию и затем использует asyncio.run(serve(self, config)), где подача происходит от from hypercorn.asyncio import serve.

Таким образом, даже если вы запускаете приложение Quart через python myapp.py, разве оно уже не использует сервер Hypercorn ?

В частности, В чем разница между этим и использованием через hypercorn myapp:app?

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

Не рекомендуется запускать Quart напрямую (через запуск ()) в производстве. Вместо этого рекомендуется запускать Quart с использованием Hypercorn или альтернативного сервера ASGI. Hypercorn устанавливается вместе с Quart и используется для обслуживания запросов по умолчанию (например, с помощью run ()) .

Так звучит, хотя Hypercorn используется для обслуживания запросов по умолчанию с run(), не рекомендуется использовать run()? Кто-нибудь еще запутался?

1 Ответ

2 голосов
/ 22 января 2020

Так что, даже если вы запускаете приложение Quart через python myapp.py, разве оно уже не использует сервер Hypercorn?

Да.

В частности, в чем разница между этим и запуском через hypercorn myapp: app?

Я хочу зарезервировать метод run для разработки, чтобы он мог по умолчанию принимать решения, полезные для развитие, но плохо для производства. Примером на данный момент является то, что метод run по умолчанию использует перегрузчик (перезагружает приложение при изменении кода), что прекрасно при разработке, но создает проблему производительности в производственной среде. Другим примером является то, что метод run не будет использовать несколько рабочих, что опять-таки приведет к снижению производительности на производстве.

(я - автор Quart)

...