Gitt enger Twisted-Proxy-Ufro eng Frist fir hire Body
Kombinéiert den Uschloss-Timeout vum Proxy-Endpunkt mat enger Deferred-Frist, déi och d'Liese vun engem klengen Äntwertkierper deckt.
En ProxyAgent kann sech séier verbannen an duerno onbegrenzt op en Äntwertkierper waarden. Den Uschloss-Timeout vu sengem Proxy-Endpunkt beschreift dee spéider Waarden net.
Setzt beim Bau vum Agent eng Uschlossgrenz um Endpunkt. Fir déi ëffentlech HTTP-Ufro hei drënner kann en net authentifizéierte Kandidat aus der HTTP-Proxy-Lëscht d'Adress ersetzen, wann ëffentlech Zwëschenhändler erlaabt sinn:
endpoint = TCP4ClientEndpoint(reactor, 'proxy.example', 8080,
timeout=5)
agent = ProxyAgent(endpoint, reactor=reactor)
Fir eng kleng Äntwert, déi Dir am Späicher sammle wëllt, hëlt d'Liese vum Kierper an d'Deferred-Kette op, ier Dir d'Frist derbäisetzt:
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()))
Den Auszuch geet dovun aus, datt d'Applikatioun schonn hire Reactor an en ageriichten Agent huet. D'Ufro-Deferred vum ProxyAgent gëtt en Äntwertobjekt zréck; readBody gëtt den Deferred fir de Kierper zréck. Et aus dem Callback zréckzeginn mécht, datt d'Kette och op déi Operatioun waart.
D'Plaz mécht et aus. Twisted applizéiert addTimeout op d'Aarbecht, déi d'Callbacks duerstellen, déi virdru installéiert goufen. En duerno bäigefüügten Kierperlieser géif eng aner Grenz beschreiwen. An dëser Uerdnung fänkt den Timer un, wann addTimeout opgeruff gëtt, an deckt déi ustoend Ufro an d'Kierperaarbecht an där Kette.
Benotzt en Streaming-Konsument fir grouss oder onbegrenzt Kierper a stellt säin Ofschloss op déiselwecht Manéier duer. Eng Frist op der Client-Säit limitéiert, wéi laang Är Applikatioun waart; si konfiguréiert den eegenen Upstream-Uschloss-Timeout vum Proxy net ëm.