PoolTimeout нь HTTPX тохируулсан хүлээх хугацаанд сангаас холболт авч чадаагүй гэсэн үг. Проксид хийх шинэ TCP холболт хугацаа хэтэрснийг нотлохгүй. Хоёр дахь хүсэлт процесс дотор чинь хүлээсээр байж болно.

Клиент нэг холболт зөвшөөрч, эхний урсгал хариу нээлттэй үлдвэл үүнийг давтах амархан. Өөр хүсэлт эхлүүлэх нь тэр холболтыг өөрөө чөлөөлөхгүй.

Урсгал хариуг хэн хариуцахыг тодорхой болго

import httpx

limits = httpx.Limits(
    max_connections=1,
    max_keepalive_connections=1,
)
timeout = httpx.Timeout(
    connect=5, read=10, write=10, pool=1
)

with httpx.Client(
    proxy="http://203.0.113.10:8080",
    trust_env=False,
    limits=limits,
    timeout=timeout,
) as client:
    with client.stream("GET", "https://example.com/") as response:
        print(response.status_code)
        for chunk in response.iter_bytes():
            print(len(chunk))

    next_response = client.get("https://example.com/")
    print(next_response.status_code)

Ажиллуулахаас өмнө баримтжуулалтын прокси хаягийг солино. Дараагийн хүсэлт урсгалын контекстоос гарсны дараа эхэлнэ. Код давталтаас гарсан эсвэл онцгой тохиолдол үүсгэсэн ч тэр гаралт хариуг хаана.

client.send(request, stream=True) зэрэг гараар урсгах үед эцсийн хаалтыг таны код хариуцна. AsyncClient-ийн харгалзах гар цэвэрлэгээг response.aclose()-оор хүлээнэ. Уншаагүй хариуг хаах нь багтаамж чөлөөлөх ч доод холболтыг дахин ашиглахын оронд хаях шаардлагатай байж болно.

Онцгой тохиолдлын нэрийг унш

ConnectTimeout холболт байгуулахтай холбоотой. ReadTimeout хариуны өгөгдөл хүлээхтэй холбоотой. PoolTimeout холболтын байр авахтай холбоотой. Зөвхөн «прокси хугацаа хэтэрсэн» гэж логдох нь засвар сонгоход хэрэгтэй ялгааг алддаг.

Төгсгөлийн цэгийн IP солихоос өмнө нээлттэй хариу, зэрэгцээ даалгавар, холболтын хязгаарыг шалга. Том сан үндэслэлтэй зэрэгцээ ачаалалд тохирч болох ч хэзээ ч хаадаггүй хариуг засахгүй. Зөвхөн програмд эзлэх илүү багтаамж өгнө.

Клиентийг бүх ачааллын турш дахин ашиглахаар хадгал. Хүсэлт бүр ажиллаж харагдуулахын тулд клиентийг шинээр үүсгэх нь амьдралын мөчлөгийн асуудлыг нууж, холболтын дахин ашиглалтыг алдаж болно.

Холбоотой нийтлэлүүд