@kovalr

Как обрабатывает Python большой поток входящих сообщений в sys.stdin?

Пример кода

for line in sys.stdin:
    # some logic 
    line = line.rstrip('\n')
    print (line)


Правильно ли я понимаю, что если в stdin будет очень много сообщений и Python не успеет обработать
#some logic
тогда некоторые сообщения будут просто пропущены ?

Если да то какой оптимальный способ обрабатывать каждое сообщение даже с увеличением их роста?
  • Вопрос задан
  • 86 просмотров
Пригласить эксперта
Ответы на вопрос 1
@deliro
Нет, сообщения не могут быть пропущены. stdin — это обычный пайп и со стороны клиента будет блокировка до тех пор, пока питон не обработает ввод

То есть, если питон будет тупить, это будет замедлять клиента. Если такое происходит — нужно уже задумываться о масштабировании своего приложения. Например, consumer-producer через threading/asyncio/multiprocessing (в зависимости от задачи). Или даже очереди сообщений.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы