代码之家  ›  专栏  ›  技术社区  ›  Stefan

扭曲:接收到的数据变慢

  •  2
  • Stefan  · 技术社区  · 10 年前

    假设我通过TCP连接以高速率接收数据。我必须对它进行某种处理。因为我不想阻塞reactor线程,所以我将处理卸载到后台线程。

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

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

    TCP协议可以迫使发送方减慢速度。如果我处理reactor线程(这不是一个选项,因为周围有其他性能更好的TCP连接),就会发生这种情况。

    1 回复  |  直到 10 年前
        1
  •  2
  •   Glyph    10 年前

    如果您正在实现 Protocol 你的 transport 属性可能是 IPushProducer 这意味着你只需要打电话 self.transport.pauseProducing() 然后 self.transport.resumeProducing() 只要你想让它再次向你提供数据。如果你只是想限速,你可以打电话 resumeProducing() 短暂延迟后,使用 reactor.callLater() .