ପ୍ରତ୍ୟେକ aiohttp ପ୍ରକ୍ସିକୁ ଏହାର ନିଜସ୍ୱ ସମବର୍ତ୍ତୀ ବଜେଟ୍ ଦିଅନ୍ତୁ
aiohttp ସଂଯୋଗ-ପୁଲ୍ ସୀମା ଏବଂ ପ୍ରତିକ୍ରିୟା ସଫାଇ ରଖି ପ୍ରତ୍ୟେକ ଚୟନିତ ପ୍ରକ୍ସି ପାଇଁ ଚାଲୁଥିବା କାର୍ଯ୍ୟ ସୀମିତ କରନ୍ତୁ।
ଏକ ପ୍ରକ୍ସି ପୁଲ୍ରେ ବହୁତ ଭିନ୍ନ କ୍ଷମତାର ଏଣ୍ଡପଏଣ୍ଟ ରହିପାରେ। ସମଗ୍ର ଆପ୍ଲିକେସନ୍ରେ ପଚାଶଟି କାର୍ଯ୍ୟକୁ ଅନୁମତି ଦେବା ସେଥିମଧ୍ୟରୁ ଅଣଚାଶଟିକୁ ଏକ ପ୍ରକ୍ସି ବାଛିବାରୁ ରୋକି ପାରେ ନାହିଁ।
ଯଦି ନୀତି “ପ୍ରତ୍ୟେକ ଚୟନିତ ପ୍ରକ୍ସି ମାଧ୍ୟମରେ ସର୍ବାଧିକ ଚାରିଟି ଚାଲୁଥିବା କାର୍ଯ୍ୟ”, ତେବେ ସେହି ନୀତିକୁ ସିଧାସଳଖ ପ୍ରକାଶ କରନ୍ତୁ। ପ୍ରତ୍ୟେକ ପ୍ରକ୍ସି ପରିଚୟ ପାଇଁ ଏକ ସେମାଫୋର ରଖନ୍ତୁ, ଏବଂ ପ୍ରକ୍ସିର କ୍ଷମତା ବ୍ୟବହାର କରୁଥିବା କାର୍ଯ୍ୟ ଚାରିପାଖରେ ଏହାକୁ ପ୍ରାପ୍ତ କରନ୍ତୁ।
limits = {proxy: asyncio.Semaphore(4) for proxy in proxy_urls}
async def fetch(session, proxy, url):
async with limits[proxy]:
async with session.get(url, proxy=proxy) as response:
return await response.read()ଏହି ରେଖାଚିତ୍ର ଅନୁମାନ କରେ ଯେ asyncio ଆମଦାନୀ ହୋଇଛି ଏବଂ ପ୍ରକ୍ସି URL ଗୁଡ଼ିକ ବୈଧ କରାଯାଇଛି। ଅନୁମତିପ୍ରାପ୍ତ ସାର୍ବଜନୀନ-ପ୍ରକ୍ସି ପଥରେ ସାର୍ବଜନୀନ ଅନୁରୋଧ ପାଇଁ, HTTP ପ୍ରକ୍ସି ତାଲିକା aiohttp ର ପ୍ରକ୍ସି URL ପାଇଁ ପ୍ରାର୍ଥୀ ଯୋଗାଏ। ଏକ ପ୍ରକୃତ ଆପ୍ଲିକେସନ୍ ନିଜର ଅନୁରୋଧ ସମୟସୀମା ମଧ୍ୟ ସେଟ୍ କରିବା ଉଚିତ ଏବଂ କେତେ ପ୍ରତିକ୍ରିୟା ତଥ୍ୟ ଆବଶ୍ୟକ ତାହା ସ୍ଥିର କରିବା ଉଚିତ। ଏକ ବଡ଼ ଫାଇଲକୁ ସମ୍ପୂର୍ଣ୍ଣ ଭାବେ ମେମୋରୀକୁ ପଢ଼ିବା ଏକ ପୃଥକ ସମ୍ବଳ ନିଷ୍ପତ୍ତି।
ମହଙ୍ଗା ଅଂଶ ପାଇଁ ଅନୁମତି ରଖନ୍ତୁ
ପ୍ରତିକ୍ରିୟା ହେଡର ଆସିବା ମାତ୍ରେ ସେମାଫୋର ଛାଡ଼ିବା ଉଦ୍ଦିଷ୍ଟ ସୀମାକୁ ବିଫଳ କରିପାରେ। ଏକ ଷ୍ଟ୍ରିମିଂ ବଡି ଏହା ପରେ ମଧ୍ୟ ଦୀର୍ଘ ସମୟ ଧରି ସଂଯୋଗ ବ୍ୟବହାର କରିପାରେ। ବଡି ବ୍ୟବହୃତ ନହେବା ପର୍ଯ୍ୟନ୍ତ କିମ୍ବା ଆପ୍ଲିକେସନର କାର୍ଯ୍ୟପ୍ରବାହ ଅନୁସାରେ ପ୍ରତିକ୍ରିୟା ବନ୍ଦ ନହେବା ପର୍ଯ୍ୟନ୍ତ ଅନୁମତି ରଖନ୍ତୁ।
ନେଷ୍ଟେଡ୍ କଣ୍ଟେକ୍ସଟ୍ ମ୍ୟାନେଜରମାନେ ସଫାଇକୁ ଦୃଶ୍ୟମାନ କରନ୍ତି ଯେତେବେଳେ ଏକ ବ୍ୟତିକ୍ରମ କିମ୍ବା ବାତିଲ କାର୍ଯ୍ୟକୁ ଛାଡ଼ିଥାଏ। ନିଜେ ପ୍ରାପ୍ତ କରି କେବଳ ସଫଳ ଫଙ୍କସନର ତଳେ ଛାଡ଼ିବାକୁ ଏଡ଼ାନ୍ତୁ।
ସଂଯୋଗ ସୀମା ଅନ୍ୟ ପ୍ରଶ୍ନର ଉତ୍ତର ଦିଏ
aiohttp ର କନେକ୍ଟର ସୀମା କନେକ୍ଟରର ଡକ୍ୟୁମେଣ୍ଟେଡ୍ ନିୟମ ଅନୁସାରେ ସଂଯୋଗ ସୀମିତ କରେ। ସେଗୁଡ଼ିକ ଆପ୍ଲିକେସନ ସେମାଫୋର ସହିତ ଉପଯୋଗୀ ରହେ। ପ୍ରତି-ଗନ୍ତବ୍ୟ ସଂଯୋଗ ସୀମା କେବଳ ନାମ ଦ୍ୱାରା ଏକ ପ୍ରକ୍ସିକୁ ନ୍ୟସ୍ତ ସମସ୍ତ ଗନ୍ତବ୍ୟ ଦ୍ୱାରା ଅଂଶୀଦାର ବଜେଟ୍ ପ୍ରକାଶ କରେ ନାହିଁ।
ସମବର୍ତ୍ତୀତାକୁ ଅନୁରୋଧ ହାରଠାରୁ ମଧ୍ୟ ଅଲଗା କରନ୍ତୁ। ଚାରିଟି ଦୀର୍ଘସ୍ଥାୟୀ ଅନୁରୋଧ ଏବଂ ଚାରିଟି ଅତି କ୍ଷୁଦ୍ର ଅନୁରୋଧ ସମାନ ସମବର୍ତ୍ତୀ ଭତ୍ତା ବ୍ୟବହାର କରେ କିନ୍ତୁ ଭିନ୍ନ ପ୍ରତି-ସେକେଣ୍ଡ-ଅନୁରୋଧ ହାର ସୃଷ୍ଟି କରେ। ହାର ନୀତି ଥିବା ସେବାକୁ ଗତି ନିୟନ୍ତ୍ରଣ କିମ୍ବା ପୃଥକ ହାର ସୀମିତକର୍ତ୍ତା ଆବଶ୍ୟକ ହୋଇପାରେ।
ଲଗ୍ ଏବଂ ମେଟ୍ରିକ୍ସ ପାଇଁ ଏକ ସ୍ଥିର, ଗୁପ୍ତ ନଥିବା ପ୍ରକ୍ସି ପରିଚାୟକ ବାଛନ୍ତୁ। ଯଦି ଦୁଇଟି ପ୍ରମାଣପତ୍ର ଥିବା URL ଏକ ସମାନ କ୍ଷମତା ପୁଲକୁ ସୂଚାଏ, ତେବେ ସେମାନେ ଏକ ବଜେଟ୍ ଅଂଶୀଦାର କରିବା ଉଚିତ କି ନାହିଁ ସ୍ଥିର କରନ୍ତୁ। ବିପରୀତରେ, ଭିନ୍ନ ପୋର୍ଟ କିମ୍ବା ଖାତା ପୃଥକ ସୀମା ପ୍ରତିନିଧିତ୍ୱ କରିପାରେ ଯେତେବେଳେ ଅପରେଟର ସେଗୁଡ଼ିକୁ ସେହିପରି ଡକ୍ୟୁମେଣ୍ଟ କରେ।
ଯେତେବେଳେ ଥ୍ରୁପୁଟ୍ କମିଯାଏ, କାର୍ଯ୍ୟ କେଉଁଠାରେ ଅପେକ୍ଷା କରୁଛି ତାହା ଯାଞ୍ଚ କରନ୍ତୁ: ଆପଣଙ୍କ ସେମାଫୋର, କନେକ୍ଟର, ପ୍ରକ୍ସି ସଂଯୋଗ ସେଟଅପ୍, କିମ୍ବା ପ୍ରତିକ୍ରିୟା ପଠନ। ଏକସାଥେ ସମସ୍ତ ସୀମା ବଢ଼ାଇବା ସେହି ପାର୍ଥକ୍ୟ କରିବା କଷ୍ଟକର କରେ ଏବଂ ଧାଡ଼ିକୁ ଆପଣ ନିୟନ୍ତ୍ରଣ ନକରୁଥିବା ପ୍ରକ୍ସିକୁ ସ୍ଥାନାନ୍ତର କରିପାରେ।