5
我的應用程序使用'twisted.web.client.Agent'來獲取網頁內容。但Agent類需要啓動一個「reactor」實例。如果我使用'twistd'開始我的應用程序,那麼根本不會有'reactor.run()'。那麼我怎樣才能得到'反應堆'實例呢?如何通過扭轉啓動扭曲應用程序時獲取「reactor」?
我的應用程序使用'twisted.web.client.Agent'來獲取網頁內容。但Agent類需要啓動一個「reactor」實例。如果我使用'twistd'開始我的應用程序,那麼根本不會有'reactor.run()'。那麼我怎樣才能得到'反應堆'實例呢?如何通過扭轉啓動扭曲應用程序時獲取「reactor」?
我希望有一個better answer,但要獲得當前活動的反應器在扭曲應用程序的方式是:
from twisted.internet import reactor
最重要的事情是無法做到這一點所有的地方,但一旦接近您的應用程序代碼的「頂部」,以便您可以輕鬆更換反應堆以進行測試或以其他方式修改其行爲(例如,您可能會更改connectTCP
以通過代理)。這就是爲什麼Agent
需要參數reactor
而不是導入當前的參數。
我發現[此](http://stackoverflow.com/questions/3424825/is-twisted-internet-reactor-global)。所以,'反應堆'是全球性的。謝謝@Glyph – davidshen84