当扭曲的应用程序被扭曲启动时,如何获得'reactor'?

Dav*_* S. 5 python service twisted

我的应用程序使用'twisted.web.client.Agent'来获取Web内容.但Agent类需要启动"reactor"实例.如果我使用'twistd'启动我的应用程序,根本就没有'reactor.run()'.那么我怎样才能得到'reactor'实例?

Gly*_*yph 11

我希望有更好的答案,但在Twisted应用程序中获取当前活动反应器的方法是:

from twisted.internet import reactor
Run Code Online (Sandbox Code Playgroud)

重要的是不要在整个地方执行此操作,而是在应用程序代码的"顶部"附近执行此操作,以便您可以轻松地替换反应器以进行测试或以其他方式修改其行为(例如,您可以可能会改变connectTCP以通过代理).这就是为什么Agent需要一个reactor参数而不是导入当前的参数.