Þegar nokkrir þræðir deila litlu proxy-safni getur val á handahófskenndri færslu gefið tveimur virkum aðgerðum sama proxyið. Biðröð getur geymt færslurnar sem eru í boði til láns núna:

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)

Byggið biðröðina einu sinni, áður en vinnuþræðirnir hefjast. proxy_urls inniheldur fullar URL-slóðir endapunkta. Opinberir kandídatar eru í boði á listanum yfir ókeypis proxý; notið þá siðvenju og URL-snið sem fetch_one styður. Núverandi samstillta fetch_one-fallið verður að ljúka netaðgerð sinni og loka hverju svari áður en það snýr aftur. Annars myndi lánið enda á meðan tengingin notar enn það proxy.

Queue.get fjarlægir eina færslu sem er í boði á atómískan hátt. Tæmt safn bíður í stað þess að skanna sameiginleg fána aftur og aftur. Ef engin færsla berst innan fimm sekúndna nær queue.Empty til kallandans; veljið endurtilraunastefnu, bilunarstefnu eða afturköllunarstefnu forritsins fyrir þá niðurstöðu.

Finally-blokkin skilar fenginni færslu eftir árangur eða undantekningu. Hún lýsir því ekki yfir að misheppnaður endapunktur sé heilbrigður. Sóttkvíunar-, skipti- og kælingastefnur þurfa skýra leið í stað þess að henda hljóðlega hverju proxyi sem sér tímabundna villu.

Afritunarsía á eins URL-strengjum kemur í veg fyrir tvöfaldar biðraðarfærslur. Ólíkar URL-slóðir geta samt vísað á sama líkamlega proxy eða útgang; flokkið þær viljandi ef einkaréttur á að gilda um þá sameiginlegu auðlind. Biðröðin samhæfir þræði í þessu ferli, ekki vinnur á öðrum vélum.

Tengdir greinar