In ProxyAgent kin fluch ferbine en dan ûnbeheind wachtsje op in antwurdlichem. De ferbiningstimeout fan syn proxy-einpunt beskriuwt dat lettere wachtsjen net.

Set by it bouwen fan de agent in ferbiningsgrins op it einpunt. Foar it iepenbiere HTTP-fersyk hjirûnder kin in net-autentisearre kandidaat út de HTTP-proxylist it adres ferfange as iepenbiere tuskenlju tastien binne:

endpoint = TCP4ClientEndpoint(reactor, 'proxy.example', 8080,
                              timeout=5)
agent = ProxyAgent(endpoint, reactor=reactor)

Foar in lyts antwurd dat jo yn it ûnthâld sammelje wolle, nim it lêzen fan it lichem op yn 'e Deferred-ketting foardat jo de deadline tafoegje:

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()))

It fragmint giet derfan út dat de applikaasje al syn reactor en in konfigurearre agent hat. De Deferred fan it fersyk fan ProxyAgent jout in antwurdobjekt; readBody jout de Deferred foar it lichem. As jo it út 'e callback weromjouwe, wachtet de ketting ek op dy operaasje.

De pleatsing is wichtich. Twisted past addTimeout ta op it wurk dat de callbacks fertsjinwurdigje dy't dêrfoar ynstalleare binne. In lichemslêzer dernei tafoegje soe in oare grins beskriuwe. Yn dizze opstelling begjint de timer as addTimeout oanroppen wurdt en omfettet it wachtjende fersyk en it lichemswurk yn dy ketting.

Brûk in streaming-ferbrûker foar grutte of ûnbeheinde lichems en fertsjintwurdigje de foltôging derfan op deselde wize. In deadline oan 'e kliïntkant beheint hoe lang oft jo applikaasje wachtet; it fernijt de eigen upstream-ferbiningstimeout fan 'e proxy net.

Relatearre artikelen