Anna Twistedi proxy-päringule selle kehale tähtaeg
Ühenda proxy-lõpp-punkti ühenduse ajalõpp Deferred-tähtajaga, mis katab ka väikese vastusekeha lugemise.
ProxyAgent võib ühenduda kiiresti ja seejärel oodata vastusekeha lõputult. Selle proxy-lõpp-punkti ühenduse ajalõpp ei kirjelda seda hilisemat ootamist.
Sea agendi loomisel lõpp-punktile ühenduspiirang. Allpool oleva avaliku HTTP-päringu jaoks võib avalike vahendajate lubamise korral asendada aadressi autentimata kandidaat HTTP-proxy loendist:
endpoint = TCP4ClientEndpoint(reactor, 'proxy.example', 8080,
timeout=5)
agent = ProxyAgent(endpoint, reactor=reactor)
Väikese vastuse jaoks, mille kavatsed mällu koguda, lisa keha lugemine Deferred-ahelasse enne tähtaja lisamist:
from twisted.web.client import readBody
d = agent.request(b'GET', b'http://example.com/')
d.addCallback(readBody)
d.addTimeout(10, reactor)
d.addCallback(lambda body: print(len(body)))
d.addErrback(lambda failure: print(failure.getErrorMessage()))
Katkend eeldab, et rakendusel on juba oma reactor ja seadistatud agent. ProxyAgenti päringu Deferred annab vastuseobjekti; readBody tagastab keha Deferredi. Selle callbackist tagastamine paneb ahela ootama ka seda toimingut.
Paigutus loeb. Twisted rakendab addTimeouti tööle, mida esindavad enne seda paigaldatud callbackid. Hiljem kehalugeja lisamine kirjeldaks teist piiri. Selles paigutuses käivitub taimer addTimeouti kutsumisel ja katab selle ahela ootel päringu ja kehatöö.
Kasuta suurte või piiramata kehade jaoks voogedastustarbijat ja esinda selle lõppemist samamoodi. Kliendipoolne tähtaeg piirab, kui kaua sinu rakendus ootab; see ei seadista ümber proxy enda ülesvoolu ühenduse ajalõppu.