Requests သည် pool_maxsize ထက် ချိတ်ဆက်မှု ပိုဖွင့်ရသည့် အကြောင်းရင်း
ကန့်သတ်ထားသော pool အတွက် pool_block ကို အသုံးပြုပြီး၊ ကန့်သတ်ချက်က proxy မှတစ်ဆင့် သွားလာသမျှ အသွားအလာအားလုံးကို လွှမ်းခြုံရမည်ဆိုလျှင် application အဆင့် ဘတ်ဂျက် ထည့်ပါ။
မူလ pool_block=False ဖြင့် pool_maxsize သည် pool အတွင်း ထိန်းသိမ်းထားသော ချိတ်ဆက်မှုများကို ကန့်သတ်သည်၊ တစ်ချိန်တည်း ရှိသမျှ ချိတ်ဆက်မှုအားလုံးကို မဟုတ်ပါ။ Requests သည် အပိုများ ဖန်တီးပြီး နောက်ပိုင်းတွင် လွှင့်ပစ်နိုင်သည်။
လက်ရှိ session ၏ HTTPS တောင်းဆိုမှုများ အသုံးပြုသော ကန့်သတ်ထားသည့် pool အတွက်:
from requests.adapters import HTTPAdapter
adapter = HTTPAdapter(
pool_connections=10,
pool_maxsize=4,
pool_block=True,
)
session.mount("https://", adapter)mount သည် HTTPS ဦးတည် URL များကို ရွေးချယ်သည်။ HTTP တောင်းဆိုမှုများသည် http:// အောက်တွင် mount လုပ်ထားသော adapter ကို အသုံးပြုသည်။
| ထည့်သွင်းချက် | မည်သည့်အရာကို ထိန်းချုပ်သည် |
|---|---|
| pool_connections | manager က pool မည်မျှကို cache လုပ်ထားသည် |
| pool_maxsize | pool တစ်ခုအတွင်း ချိတ်ဆက်မှုများ |
| pool_block=True | အပိုတစ်ခု ဖန်တီးမည့်အစား pool ချိတ်ဆက်မှုကို စောင့်ခြင်း |
Requests သည် proxy URL အလိုက် proxy manager များကိုလည်း cache လုပ်သည်။ ဤတန်ဖိုးများသည် လှည့်ပတ်နေသော proxy နှင့် ဦးတည်ရာစာရင်းတစ်လျှောက် တစ်ခုတည်းသော စုစုပေါင်း ကန့်သတ်ချက် မဖြစ်ပါ။ အလုပ်အားလုံးကို ကြားခံတစ်ခုတည်းမှ ဖြတ်သန်းရမည်ဟု လိုအပ်ပါက application အဆင့် တစ်ပြိုင်နက်လုပ်ဆောင်မှု ဘတ်ဂျက်ကို အသုံးပြုပါ။
ပိတ်ဆို့ခြင်းသည် တုံ့ပြန်မှုများကို လွှတ်ပေးရန် မရှိမဖြစ် ဖြစ်စေသည်: ကိုယ်ထည်များကို ကုန်အောင် ဖတ်ပါ သို့မဟုတ် streaming တုံ့ပြန်မှုများကို ပိတ်ပါ မှ စောင့်ဆိုင်းနေသော အလုပ်များ ဆက်လက်လုပ်ဆောင်နိုင်မည်။ ပြသထားသော ဖွဲ့စည်းမှုတွင် Requests ၏ adapter သည် ဤ pool စောင့်ဆိုင်းမှုအတွက် သီးခြား အချိန်ကန့်သတ်ချက် မပေးပါ။