Comments 5
Если всё равно нужен nginx — подумал я, не лучше ли сразу взять nginx unit
странная логика, это два совершенно разных проекта
выполняя все функции с синхронным I/O в отдельном потоке
Я не совсем понял - поток же быстро "застрянет"? Одна блокирующая операция на несколько секунд заставит все остальные ждать. И так быстро дойдет до сотен секунд. Почему один поток для синхронных операций? Почему много потоков для асинхронных операций? Наоборот же.
Резюмируя: есть веские причины обрабатывать всю синхронную нагрузку вне асинхронных потоков
Множественное число у асинхронных потоков - почему? Асинхронность - про один тред с event loop и прочим, если мы про async, а не более глобально(параллельность).
Может произошла коллизия терминов, и вы имели ввиду под "потоками" не Thread из ОС, а в целом нечто абстрактное как "работа". Но думаю, если вы про Threads, то что-то странное написано...
Я никоим образом не хотел сказать, что "синхронный" поток только один. "исполняя в отдельном потоке" - я просто имел в виду, что не в том же самом. Коллизии терминов нет, я имею в виду использование thread pool для выполнения синхронных функций - треды обычные, системные. Что касается множественного числа асинхронных потоков - ну конечно, их может быть несколько. Каждый в своём процессе, у каждого свой event loop. Запустив несколько асинхронных воркеров, Вы сможете лучше использовать возможности Вашей многоядерной системы. Иногда имеет смысл иметь только один асинхронный поток - когда он хранит что-то в памяти, например, список соединений
О том, как в питоне без протокола и задеплоить приложение не могут. Смешиваем ASGI с WSGI — вредные советы