Предположим, что я получаю данные по TCP-соединению с высокой скоростью. Я должен сделать какую-то обработку на нем. Поскольку я не хочу блокировать поток реактора, я выгружаю обработку в фоновый поток.Twisted: Замедление данныхПолучено
Данные поступают быстрее, чем я могу обработать его. Если я помещаю данные в очередь, очередь растет бесконечно.
Есть ли способ сказать, что закрученные, чтобы приостановить прием данных?
Протокол TCP может заставить отправителя замедлить работу. Это то, что произойдет, если я обработаю поток реактора (что не является вариантом, так как есть другие, лучше, TCP-соединения).
@barny Вот что я пытался сказать в последнем абзаце. Данные не будут потеряны. Это протокол TCP. Операционная система на стороне отправителя замедлит отправку. – Stefan
Удалил мой немой комментарий. Это любое использование http://twistedmatrix.com/pipermail/twisted-python/2015-January/029068.html Однако я думаю, вам, возможно, придется выяснить, как фактически замедлить работу производителя, поэтому он ограничивает скорость передачи данных. – barny
Как насчет: запустить сценарий обработки данных в одном процессе (а не в потоке) - он блокирует, так что данные становятся дросселированными - и запускают остальные в другом процессе и на разных портах. – barny