我在模塊中有一個ReconnectingClientFactory。我希望模塊儘可能靈活。我只需要一個單獨的TCP連接。我使用工廠作爲此連接的持續接口。在過去,工廠會通過無休止地重試連接來響應斷開連接,而不會通知頂級腳本(導入模塊的腳本)存在連接問題。如何設計扭曲的工廠來處理斷開連接?
這裏是什麼,我有一個簡單的例子:
Factory(protocol.ReconnectingClientFactory):
def clientConnectionFailed(self, connector, reason):
...
def clientConnectionLost(self, connector, reason):
...
我認爲這是最好的,如果我告訴了頂級腳本(即導入模塊腳本)時存在連接問題。通過這種方式,頂層腳本可以定義斷開連接解析行爲,而不是全部在模塊中進行硬編碼。但是,將連接問題傳達給頂層腳本的最佳方式是什麼?
我可以舉一個例外,但它會被捕獲到什麼地方?我想反應堆會抓住它,但這有什麼幫助?
沒有回調或errbacks我可以通知頂部腳本的連接問題。
頂部腳本可以提供特定的函數[作爲參數]在連接問題發生時被調用。這是不錯的設計嗎?
這似乎是一個不完整的解決方案,因爲它只提供了一種方式來處理失敗的連接嘗試,而不是丟失的連接。如何在沒有協議協議的情況下處理丟失的連接? – 2011-03-27 13:44:54