扭曲:减慢接收到的数据
Twisted: Slowing down dataReceived
假设我通过 TCP 连接快速接收数据。我必须对其进行某种处理。因为我不想阻塞反应器线程,所以我将处理卸载到后台线程。
数据到达的速度比我处理它的速度还快。如果我把数据放在队列中,队列会无限增长。
有没有办法告诉twisted暂停接收数据?
TCP 协议可以强制发件人放慢速度。如果我处理反应堆线程(这不是一个选项,因为周围有其他表现更好的 TCP 连接),就会发生这种情况。
如果你正在实现 Protocol
的子类,你的 transport
属性可能是一个 IPushProducer
,这意味着你只需要调用 self.transport.pauseProducing()
然后 self.transport.resumeProducing()
每当您希望它再次开始为您提供数据时。如果你只是想限制速率,你可以在短暂的延迟后调用 resumeProducing()
,使用 reactor.callLater()
.
假设我通过 TCP 连接快速接收数据。我必须对其进行某种处理。因为我不想阻塞反应器线程,所以我将处理卸载到后台线程。
数据到达的速度比我处理它的速度还快。如果我把数据放在队列中,队列会无限增长。
有没有办法告诉twisted暂停接收数据?
TCP 协议可以强制发件人放慢速度。如果我处理反应堆线程(这不是一个选项,因为周围有其他表现更好的 TCP 连接),就会发生这种情况。
如果你正在实现 Protocol
的子类,你的 transport
属性可能是一个 IPushProducer
,这意味着你只需要调用 self.transport.pauseProducing()
然后 self.transport.resumeProducing()
每当您希望它再次开始为您提供数据时。如果你只是想限制速率,你可以在短暂的延迟后调用 resumeProducing()
,使用 reactor.callLater()
.