Twisted ପ୍ରକ୍ସି ଅନୁରୋଧକୁ ଏହାର ବଡି ପାଇଁ ସମୟସୀମା ଦିଅନ୍ତୁ
ପ୍ରକ୍ସି ଏଣ୍ଡପଏଣ୍ଟର ସଂଯୋଗ ସମୟସୀମାକୁ ଏକ Deferred ସମୟସୀମା ସହିତ ଯୋଡ଼ନ୍ତୁ ଯାହା ଛୋଟ ପ୍ରତିକ୍ରିୟା ବଡି ପଢ଼ିବାକୁ ମଧ୍ୟ ସାମିଲ କରେ।
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 ଡାକିବା ସମୟରେ ଆରମ୍ଭ ହୁଏ ଏବଂ ସେହି ଶୃଙ୍ଖଳର ଅପେକ୍ଷାରତ ଅନୁରୋଧ ଓ ବଡି କାର୍ଯ୍ୟକୁ ସାମିଲ କରେ।
ବଡ଼ କିମ୍ବା ଅସୀମିତ ବଡି ପାଇଁ ଷ୍ଟ୍ରିମିଂ ଉପଭୋକ୍ତା ବ୍ୟବହାର କରନ୍ତୁ ଏବଂ ଏହାର ସମାପ୍ତି ସେହି ଭାବରେ ଦର୍ଶାନ୍ତୁ। କ୍ଲାୟେଣ୍ଟ-ପାର୍ଶ୍ୱ ସମୟସୀମା ଆପଣଙ୍କ ଆପ୍ଲିକେସନ୍ କେତେ ସମୟ ଅପେକ୍ଷା କରେ ତାହା ସୀମିତ କରେ; ଏହା ପ୍ରକ୍ସିର ନିଜସ୍ୱ ଅପଷ୍ଟ୍ରିମ୍ ସଂଯୋଗ ସମୟସୀମାକୁ ପୁନଃ ବିନ୍ୟାସ କରେ ନାହିଁ।