ProxyAgent getur tengst fljótt og beðið síðan ótakmarkað eftir svarhluta. Tengitími proxy-endans lýsir ekki þeirri seinni bið.

Stilltu tengimörk á endann þegar þú byggir agentinn. Fyrir opinberu HTTP-fyrirspurnina hér að neðan getur óstaðfestur kandídat af HTTP-proxylistanum komið í stað heimilisfangsins ef opinberir milliliðir eru leyfðir:

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

Fyrir litla svörun sem þú ætlar að safna í minni skaltu hafa lestur svarlutans í Deferred-keðjunni áður en þú bætir við tímarkinu:

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

Brotinn gerir ráð fyrir að forritið hafi þegar reactor sinn og stilltan agent. Fyrirspurnar-Deferred ProxyAgent skilar svarhlut; readBody skilar Deferred fyrir líkamann. Að skila því úr callbackinu lætur keðjuna bíða eftir þeirri aðgerð líka.

Staðsetningin skiptir máli. Twisted beitir addTimeout á verkið sem callbackin sem sett voru fyrir það standa fyrir. Að bæta við lestri líkamans eftir á myndi lýsa annarri mörkum. Í þessu fyrirkomulagi byrjar tímamælirinn þegar addTimeout er kallað og nær yfir biðjandi fyrirspurnina og líkamsvinnuna í þeirri keðju.

Notaðu straumnotanda fyrir stóra eða ótakmarkaða líkama og sýndu lokun hans á sama hátt. Tímark á biðlarahlið takmarkar hversu lengi forritið þitt bíður; það stillir ekki uppstreymistengitíma proxysins sjálfs að nýju.

Skyldar greinar