管理connectionLost我写下面的代码段来处理扭曲连接丢失:如何适当地扭曲
class Foo(LineReceiver):
def connectionLost(self, reason):
if reason.type != ConnectionLost:
reactor.stop()
def terminate(self):
self.transport.loseConnection()
的terminate
方法由一些输入/输出协议调用。 我必须在connectionLost
方法中测试reason.type
以避免出现错误 '当我用Ctrl-C中断我的程序而不是调用terminate
方法的 '时,无法停止不运行的反应器。
此代码的工作原理,但我想知道是否有一个更优雅的方式来管理扭曲的连接结束? 谢谢!
它实际上比这更难解决。特别是'running'属性非常混乱,大多数人不正确地使用它。这是为什么Twisted 12.3引入'twisted.internet.task.react' API的很大一部分。 –
更新了我的答案,以提到解决方案这个解决方案的不太正确的性质,并添加了一些其他选项。 – Glyph
Glyph and Jean-Paul,非常感谢 – jean