La mia applicazione utilizza il "twisted.web.client.Agent" per ottenere il contenuto web. Ma la classe Agent richiede un'istanza di 'reattore' da avviare. Se avvio la mia applicazione utilizzando il 'twistd', non ci sarà affatto 'reactor.run()'. Quindi, come posso ottenere l'istanza del "reattore"?Come ottenere il 'reattore' quando l'applicazione intrecciata viene avviata da twistd?
5
A
risposta
10
Vorrei che ci fosse un better answer, ma il modo per ottenere la corrente, reattore attivo in un'applicazione ritorto è:
from twisted.internet import reactor
La cosa importante è di non fare questo tutto il luogo, ma una volta nei pressi di la "parte superiore" del codice dell'applicazione, in modo che sia possibile sostituire facilmente il reattore a scopo di test o modificarne il comportamento in altri modi (ad esempio, è possibile modificare lo connectTCP
per passare attraverso un proxy). Questo è il motivo per cui Agent
utilizza un parametro reactor
anziché importare quello corrente.
Ho trovato [questo] (http://stackoverflow.com/questions/3424825/is-twisted-internet-reactor-global). Quindi, il "reattore" è globale. Grazie @Glyph – davidshen84