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 ফিরিয়ে দেয়। কলব্যাক থেকে এটি ফেরত দিলে শৃঙ্খলটিও সেই কাজের জন্য অপেক্ষা করে।

স্থান গুরুত্বপূর্ণ। Twisted addTimeout কে তার আগে স্থাপিত কলব্যাকগুলি যে কাজের প্রতিনিধিত্ব করে তার উপর প্রয়োগ করে। পরে বডি পাঠক যোগ করলে ভিন্ন সীমা বর্ণিত হতো। এই বিন্যাসে টাইমারটি addTimeout ডাকা হলে শুরু হয় এবং সেই শৃঙ্খলের অপেক্ষমাণ অনুরোধ ও বডি কাজ অন্তর্ভুক্ত করে।

বড় বা অসীম বডির জন্য স্ট্রিমিং গ্রাহক ব্যবহার করুন এবং এর সমাপ্তি একইভাবে প্রকাশ করুন। ক্লায়েন্ট-পার্শ্বের সময়সীমা আপনার অ্যাপ্লিকেশন কতক্ষণ অপেক্ষা করে তা সীমিত করে; এটি প্রক্সির নিজস্ব আপস্ট্রিম সংযোগ সময়সীমা পুনরায় কনফিগার করে না।

সম্পর্কিত নিবন্ধ