管理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