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ס. אַ גרעסערער פּול קען פּאַסן פֿאַר אַ באַרעכטיקטער גלײַכצײַטיקער לאַסט, אָבער פֿאַרריכט נישט ענטפֿערס וואָס ווערן קיינמאָל נישט פֿאַרמאַכט. ער גיט דער אַפּליקאַציע נאָר מער קאַפּאַציטעט צו פֿאַרנעמען.

האַלט דעם קליענט ווידער־ניצבאַר איבער דער גאַנצער אַרבעטסלאַסט. אים ווידער בויען כּדי יעדער אָנפֿרעג זאָל אויסזען אַרבעטנדיק קען באַהאַלטן אַ לעבנסציקל־פּראָבלעם און פֿאַרלירן ווידערניצן פֿון פֿאַרבינדונגען.

פֿאַרבונדענע אַרטיקלען