Найти - Пользователи
Полная версия: медленный subprocess
Начало » Python для экспертов » медленный subprocess
1
treeloys
короче решил написать кое-что на websocket+python
решил попробовать микросервисы, но не tcp/ip, а с помощью subprocess
Суть системы, чтобы в зависимости от команды клиента поднимать определенный сервис для обработки запроса, и потом ответ процесса возвращать клиенту. Синхронизация - на БД.

Но! Popen жрет просто адски, 60мс на вызов скрипта, когда как сокеты максимум 3-4мс.
Как люди обходят данную проблему? Или таки придется городить межпроцессорное общение на tcp-ip, с распределением нагрузки?

Я так понял время уходит на поднятие интерпретатора, может есть элегантный способ “подвесить” его, чтобы он сразу скрипт заглатывал, а не тратил время на собственную загрузку?
PooH
treeloys
Как люди обходят данную проблему?
Люди вырезают гланды с другой стороны. Медленней и геморрней и придумать сложно. Посмотрите как работает любой микрофреймворк Flask там, Bottle.
Rodegast
Пыховец детектед.
treeloys
PooH
микрофреймворк Flask
Посмотрел, изучил, не катит.
Rodegast
Пыховец детектед.
Что-то имеете против других ЯП?
JOHN_16
treeloys
Я так понял время уходит на поднятие интерпретатора, может есть элегантный способ “подвесить” его, чтобы он сразу скрипт заглатывал, а не тратил время на собственную загрузку?
ну концепцию воркеров и используют.
Можно по новомодному задействовать RabbitMQ куда посылать задачи: которые воркеры будут подхватывать.
Ну или посмтрите на то как работает gunicorn, uwsgi. У меня есть ощущение что он может вам подойти
PooH
treeloys
Посмотрел, изучил, не катит.
Почему? Вы же практически переизобрели CGI, разве что передачу данных сделали еще медленнее - через БД.

Вам правильно JOHN_16 подсказал - асинхронный фронт, можно просто nginx взять, к нему есть модули zeromq, rabbitmq и т.д. и очереди с воркерами. И передача данных, конечно, не через БД, а средствами очереди, или через что-нибудь навроде редиса.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB