扭曲:减慢数据接收

时间:2015-08-18 14:45:55

标签: python python-2.7 twisted

假设我通过TCP连接快速接收数据。我必须对它进行某种处理。由于我不想阻止反应器线程,我将处理卸载到后台线程。

数据到达的速度比我处理的速度快。如果我将数据放入队列,队列就会无限增长。

有没有办法告诉twisted暂停接收数据?

TCP协议可以强制发件人减速。如果我在处理反应堆线程时会发生这种情况(这不是一个选项,因为周围有其他更好的TCP连接)。

1 个答案:

答案 0 :(得分:2)

如果要实现Protocol的子类,则transport属性可能是IPushProducer,这意味着您只需要调用self.transport.pauseProducing()然后{{1}无论何时你想要它再次开始为你提供数据。如果您只想限价,可以在短暂延迟后使用self.transport.resumeProducing()致电resumeProducing()