پراکسی پول میں بہت مختلف صلاحیتوں والے اینڈ پوائنٹس ہو سکتے ہیں۔ پوری ایپلیکیشن میں پچاس کارروائیوں کی اجازت دینا ان میں سے انچاس کو ایک ہی پراکسی منتخب کرنے سے نہیں روکتا۔

اگر پالیسی «ہر منتخب پراکسی کے ذریعے زیادہ سے زیادہ چار جاری کارروائیاں» ہے تو اس پالیسی کو براہ راست بیان کریں۔ ہر پراکسی شناخت کے لیے ایک سیمافور رکھیں اور اسے اس کام کے گرد حاصل کریں جو پراکسی کی صلاحیت استعمال کرتا ہے۔

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 درآمد ہو چکا ہے اور پراکسی URLs کی توثیق ہو چکی ہے۔ اجازت شدہ عوامی پراکسی راستے پر عوامی درخواستوں کے لیے، HTTP پراکسی فہرست aiohttp کے پراکسی URLs کے لیے امیدوار فراہم کرتی ہے۔ ایک حقیقی ایپلیکیشن کو اپنا درخواست ٹائم آؤٹ بھی مقرر کرنا چاہیے اور یہ طے کرنا چاہیے کہ اسے کتنا جوابی ڈیٹا درکار ہے۔ کسی بڑی فائل کو مکمل طور پر میموری میں پڑھنا ایک الگ وسیلہ فیصلہ ہے۔

مہنگے حصے کے لیے اجازت رکھیں

جواب کے ہیڈر آتے ہی سیمافور چھوڑ دینا مطلوبہ حد کو ناکام کر سکتا ہے۔ اسٹریمنگ باڈی اس کے بعد بھی طویل عرصے تک کنکشن استعمال کر سکتی ہے۔ اجازت تب تک رکھیں جب تک باڈی استعمال نہ ہو جائے یا ایپلیکیشن کے ورک فلو کے مطابق جواب بند نہ ہو جائے۔

نیسٹڈ کانٹیکسٹ مینیجر صفائی کو نظر آنے والا بناتے ہیں جب کوئی استثنا یا منسوخی کارروائی کو چھوڑ دیتی ہے۔ دستی طور پر حاصل کرنے اور صرف کامیاب فنکشن کے نیچے چھوڑنے سے گریز کریں۔

کنکشن کی حدود دوسرے سوال کا جواب دیتی ہیں

aiohttp کے کنیکٹر کی حدود کنیکٹر کے دستاویزی قواعد کے مطابق کنکشن محدود کرتی ہیں۔ وہ ایپلیکیشن سیمافور کے ساتھ مفید رہتی ہیں۔ فی منزل کنکشن حد صرف اپنے نام سے ایک پراکسی کو تفویض کردہ تمام منزلوں کے مشترکہ بجٹ کا اظہار نہیں کرتی۔

ہم وقتی کو درخواست کی شرح سے بھی الگ پہچانیں۔ چار طویل العمر درخواستیں اور چار بہت مختصر درخواستیں ایک ہی ہم وقتی حصہ استعمال کرتی ہیں جبکہ مختلف فی سیکنڈ درخواست شرحیں پیدا کرتی ہیں۔ شرح پالیسی والی سروس کو رفتار کی ترتیب یا الگ شرح محدود کنندہ درکار ہو سکتا ہے۔

لاگز اور میٹرکس کے لیے مستحکم، غیر خفیہ پراکسی شناخت کنندہ منتخب کریں۔ اگر دو اسناد والے URLs ایک ہی صلاحیت پول کی طرف اشارہ کریں تو فیصلہ کریں کہ انہیں ایک بجٹ مشترک کرنا چاہیے یا نہیں۔ اس کے برعکس، مختلف پورٹس یا اکاؤنٹس الگ حدود کی نمائندگی کر سکتے ہیں جب آپریٹر انہیں اسی طرح دستاویز کرے۔

جب تھرو پٹ گرے تو جانچیں کہ کام کہاں انتظار کر رہا ہے: آپ کا سیمافور، کنیکٹر، پراکسی کنکشن کا سیٹ اپ، یا جوابات کی قرأت۔ ایک ساتھ تمام حدود بڑھانا اس فرق کو مشکل بناتا ہے اور قطار کو ایسی پراکسی میں منتقل کر سکتا ہے جو آپ کنٹرول نہیں کرتے۔

متعلقہ مضامین