【发布时间】:2011-10-03 05:33:53
【问题描述】:
我的应用程序使用“twisted.web.client.Agent”来获取 Web 内容。但是代理类需要一个“反应器”实例来启动。如果我使用“twistd”启动我的应用程序,则根本不会有“reactor.run()”。那么我怎样才能得到'reactor'实例呢?
【问题讨论】:
我的应用程序使用“twisted.web.client.Agent”来获取 Web 内容。但是代理类需要一个“反应器”实例来启动。如果我使用“twistd”启动我的应用程序,则根本不会有“reactor.run()”。那么我怎样才能得到'reactor'实例呢?
【问题讨论】:
我希望有一个better answer,但是在 Twisted 应用程序中获取当前活动反应器的方法是:
from twisted.internet import reactor
重要的是不要在所有地方都这样做,而是在靠近应用程序代码的“顶部”时这样做,以便您可以轻松更换反应器以进行测试或以其他方式修改其行为(例如,您可能会更改 connectTCP 以通过代理)。这就是为什么Agent 采用reactor 参数而不是自己导入当前参数的原因。
【讨论】: