Nigbati ọpọlọpọ awọn okun ba pin pool proxy kekere kan, yiyan titẹ sii laileto le fun awọn iṣẹ meji ti n ṣiṣẹ ni proxy kanna. Queue le mu awọn titẹ sii ti o wa fun yiya ni bayi:

from contextlib import contextmanager
from queue import Queue

available = Queue()
for endpoint in dict.fromkeys(proxy_urls):
    available.put(endpoint)

@contextmanager
def borrow_proxy():
    endpoint = available.get(timeout=5)
    try:
        yield endpoint
    finally:
        available.put(endpoint)

def process_url(url):
    with borrow_proxy() as endpoint:
        return fetch_one(url, endpoint)

Kọ queue naa lẹẹkan, ṣaaju ki o to bẹrẹ awọn okun iṣẹ. proxy_urls ni awọn URL ipari pipe. Awọn oludije gbogbo eniyan wa ninu akojọ proxy ọfẹ; lo ilana ati ọna kika URL ti fetch_one ṣe atilẹyin. Iṣẹ fetch_one ti o ni ibamu ti o wa tẹlẹ gbọdọ pari iṣẹ nẹtiwọọki rẹ ki o si pa eyikeyi idahun ṣaaju ki o to pada. Bibẹẹkọ yiya yoo pari lakoko ti asopọ naa ṣi nlo proxy yẹn.

Queue.get yọ titẹ sii kan ti o wa kuro ni atomiki. Pool ti o tán yoo duro dipo ki o tun ṣe ayẹwo awọn asia ti o pin leralera. Ti ko ba si titẹ sii ti o de laarin iṣẹju-aaya marun, queue.Empty yoo de ọdọ ẹniti n pe; yan ilana atunyẹwo, ikuna tabi fagile ti ohun elo fun abajade yẹn.

Block finally da titẹ sii ti a gba pada lẹhin aṣeyọri tabi imukuro. Ko sọ pe ipari ti o kuna ni ilera. Awọn ilana quarantine, rirọpo ati itutu nilo ọna ti o han gbangba dipo jiju gbogbo proxy ti o rii aṣiṣe igba diẹ ni idakẹjẹ.

Yiyọ awọn ẹda-ọrọ URL kanna kuro yoo dẹkun awọn titẹ sii ilọpo meji ninu queue. Awọn URL oriṣiriṣi tun le tọka si proxy ti ara kanna tabi ijade; ṣajọ wọn pọ mọọmọ ti iyasọtọ ba gbọdọ kan awọn orisun ti o pin yẹn. Queue n ṣe iṣakojọpọ awọn okun ninu ilana yii, kii ṣe awọn oṣiṣẹ lori awọn ẹrọ miiran.

Àwọn àpilẹ̀kọ tó jọra