ProxyAgent inaweza kuunganisha haraka kisha ikasubiri mwili wa jibu bila kikomo. Muda wa muunganisho wa kituo chake cha mwisho cha proxy hauelezi kusubiri huko kwa baadaye.

Weka kikomo cha muunganisho kwenye kituo cha mwisho unapounda wakala. Kwa ombi la umma la HTTP hapa chini, mgombea asiyethibitishwa kutoka orodha ya proxy za HTTP anaweza kuchukua nafasi ya anwani ikiwa wapatanishi wa umma wanaruhusiwa:

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

Kwa jibu dogo unalokusudia kukusanya kwenye kumbukumbu, jumuisha usomaji wa mwili katika mnyororo wa Deferred kabla ya kuongeza muda wa mwisho:

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

Kipande hiki kinadhani programu tayari ina reactor yake na wakala aliyesanidiwa. Deferred ya ombi la ProxyAgent hutoa kitu cha jibu; readBody hurudisha Deferred ya mwili. Kuirudisha kutoka kwa callback hufanya mnyororo usubiri pia operesheni hiyo.

Mahali ni muhimu. Twisted hutumia addTimeout kwa kazi inayowakilishwa na callback zilizowekwa kabla yake. Kuongeza msomaji wa mwili baadaye kutaeleza mpaka tofauti. Katika mpangilio huu kipima muda huanza addTimeout inapoitwa na hufunika ombi linalosubiri na kazi ya mwili katika mnyororo huo.

Tumia mtumiaji wa mtiririko kwa miili mikubwa au isiyo na kikomo na uwakilishe ukamilifu wake kwa namna hiyo hiyo. Muda wa mwisho upande wa mteja hupunguza muda ambao programu yako inasubiri; hausanidi upya muda wa muunganisho wa juu wa proxy yenyewe.

Makala zinazohusiana