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