ProxyAgent ඉක්මනින් සම්බන්ධ වී පසුව ප්‍රතිචාර බඳ සඳහා අසීමිතව රැඳී සිටිය හැක. එහි ප්‍රොක්සි අන්ත ලක්ෂ්‍යයේ සම්බන්ධතා කාල සීමාව එම පසුකාලීන රැඳී සිටීම විස්තර නොකරයි.

නියෝජිතයා ගොඩනඟන විට අන්ත ලක්ෂ්‍යයේ සම්බන්ධතා සීමාවක් සකසන්න. පහත පොදු HTTP ඉල්ලීම සඳහා, පොදු මැදිහත්කරුවන්ට අවසර දෙන විට HTTP ප්‍රොක්සි ලැයිස්තුවවෙන් සත්‍යාපනය නොකළ අපේක්ෂකයෙකුට ලිපිනය වෙනුවට යෙදිය හැක:

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

ඔබ මතකයේ එකතු කිරීමට අදහස් කරන කුඩා ප්‍රතිචාරයක් සඳහා, කාල සීමාව එකතු කිරීමට පෙර බඳ කියවීම Deferred දාමයට ඇතුළත් කරන්න:

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

මෙම කොටස උපකල්පනය කරන්නේ යෙදුමට දැනටමත් එහි reactor සහ වින්‍යාසගත නියෝජිතයා ඇති බවයි. ProxyAgent හි ඉල්ලීම් Deferred ප්‍රතිචාර වස්තුවක් ලබා දෙයි; readBody බඳ සඳහා Deferred ලබා දෙයි. එය callback වෙතින් ආපසු ලබා දීමෙන් දාමය එම මෙහෙයුම සඳහා ද රැඳී සිටී.

ස්ථානය වැදගත්. Twisted addTimeout යෙදවෙන්නේ ඊට පෙර ස්ථාපිත callback මගින් නියෝජනය වන කාර්යයට ය. පසුව බඳ කියවන්නෙකු එකතු කිරීම වෙනත් සීමාවක් විස්තර කරයි. මෙම සැකසුමේ දී කාලකය addTimeout අමතන විට ආරම්භ වන අතර එම දාමයේ රැඳී සිටින ඉල්ලීම සහ බඳ කාර්යය ආවරණය කරයි.

විශාල හෝ අසීමිත බඳ සඳහා ප්‍රවාහ පරිභෝජකයෙකු භාවිත කර එහි අවසානය ද එලෙසම නිරූපණය කරන්න. සේවාදායක පැත්තේ කාල සීමාව ඔබේ යෙදුම කොපමණ කලක් රැඳී සිටීද යන්න සීමා කරයි; එය ප්‍රොක්සියේම උඩු ගමන් සම්බන්ධතා කාල සීමාව නැවත වින්‍යාස නොකරයි.

අදාළ ලිපි