Agħti lid-domanda proxy Twisted skadenza għall-ġisem tagħha
Għaqqad it-timeout tal-konnessjoni tal-endpoint tal-proxy ma’ skadenza Deferred li tkopri wkoll il-qari ta’ ġisem tar-risposta żgħir.
ProxyAgent jista’ jikkonnettja malajr u mbagħad jistenna bla tarf ġisem tar-risposta. It-timeout tal-konnessjoni tal-endpoint tal-proxy tiegħu ma jiddeskrivix dak l-istennija aktar tard.
Issettja limitu tal-konnessjoni fuq l-endpoint meta tibni l-aġent. Għad-domanda HTTP pubblika hawn taħt, kandidat mhux awtentikat mil-lista tal-proxy HTTP jista’ jissostitwixxi l-indirizz jekk huma permessi intermedjarji pubbliċi:
endpoint = TCP4ClientEndpoint(reactor, 'proxy.example', 8080,
timeout=5)
agent = ProxyAgent(endpoint, reactor=reactor)
Għal risposta żgħira li biħsiebek tiġbor fil-memorja, inkludi l-qari tal-ġisem fil-katina Deferred qabel ma żżid l-iskadenza:
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()))
Is-silta tassumi li l-applikazzjoni diġà għandha r-reactor u aġent konfigurat tagħha. Id-Deferred tad-domanda ta’ ProxyAgent jagħti oġġett tar-risposta; readBody jirritorna d-Deferred għall-ġisem. Ir-ritorn tiegħu mill-callback iġiegħel il-katina tistenna wkoll dik l-operazzjoni.
Il-pożizzjoni hija importanti. Twisted japplika addTimeout għax-xogħol rappreżentat mill-callbacks installati qablu. Żieda ta’ qarrej tal-ġisem wara tiddeskrivi konfini differenti. F’dan l-arranġament it-timer jibda meta jissejjaħ addTimeout u jkopri d-domanda pendenti u x-xogħol tal-ġisem f’dik il-katina.
Uża konsumatur streaming għal ġisem kbir jew bla limitu u rrappreżenta t-tlestija tiegħu bl-istess mod. Skadenza fuq in-naħa tal-klijent tillimita kemm tistenna l-applikazzjoni tiegħek; ma tikkonfigurax mill-ġdid it-timeout tal-konnessjoni upstream tal-proxy stess.