Ba waƙar proxy ta Twisted wa'adin ƙarewa don jikinta
Haɗa lokacin haɗin ƙarshen proxy tare da wa'adin Deferred wanda kuma ya rufe karanta ƙaramin jikin amsa.
ProxyAgent na iya haɗawa da sauri sannan ya jira jikin amsa ba tare da iyaka ba. Lokacin haɗin ƙarshen proxy ɗinsa ba ya bayanin wannan jira ta gaba.
Sanya iyakar haɗi a kan ƙarshen lokacin da kake gina wakili. Don buƙatar HTTP ta jama'a da ke ƙasa, ɗan takara mara tabbaci daga jerin proxy na HTTP na iya maye gurbin adireshin idan an yarda da masu shiga tsakani na jama'a:
endpoint = TCP4ClientEndpoint(reactor, 'proxy.example', 8080,
timeout=5)
agent = ProxyAgent(endpoint, reactor=reactor)
Don ƙaramin amsa da kake son tattarawa a ƙwaƙwalwa, saka karanta jiki a cikin sarkar Deferred kafin ƙara wa'adin:
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()))
Wannan yanki yana ɗauka cewa aikace-aikacen yana da reactor da wakili da aka saita. Deferred ɗin buƙatar ProxyAgent yana ba da abin amsa; readBody yana ba da Deferred na jiki. Mayar da shi daga callback yana sa sarkar ta jira wannan aikin kuma.
Wuri yana da muhimmanci. Twisted yana amfani da addTimeout a kan aikin da callbacks da aka sanya kafinsa suke wakilta. Ƙara mai karanta jiki bayan haka zai bayanin wata iyaka. A cikin wannan tsari agogon yana farawa lokacin da aka kira addTimeout kuma yana rufe buƙatar da ke jira da aikin jiki a cikin wannan sarkar.
Yi amfani da mai amfani da yawo don manyan jiki ko marasa iyaka kuma ka nuna kammalawarsa haka. Wa'adi a gefen abokin ciniki yana iyakance tsawon lokacin da aikace-aikacenka zai jira; ba ya sake saita lokacin haɗin sama na proxy ɗin kansa.