Foar in fêste pool kin round-robin-keuze noflik koart wêze:

from itertools import cycle

choices = cycle([
    "http://proxy-a.example:8080",
    "http://proxy-b.example:8080",
    "http://proxy-c.example:8080",
])

endpoint = next(choices)

Ferfange de foarbyld-URL's troch HTTP-einpunten út jo tsjinst of út de HTTP-proxylist. Opienfolgjende oproppen jouwe A, B, C en dan wer A. Brûk de keazen wearde by it ynstellen fan de folgjende oanfraach. It opnij meitsjen fan de iterator foar elke oanfraach soe de folchoarder opnij begjinne. Foar Requests, jou it keazen einpunt oan de oanfraach.

As jo in list foarkomme, ferpleats dan it earste item nei efteren. pool.append(pool.pop()) ferwideret it lêste item en set it direkt werom; it earste item feroaret nea. De wachtrige-operaasje is pool.append(pool.pop(0)), mar it ferwiderjen fan foaroan ferskoot de oare listitems.

De iterator hat in bewust beskieden taak. Hy kontrolearret gjin beskikberens, ferwidert gjin mislearre ynfieringen en garandearret gjin oare iepenbiere útgong. Ferskate einpunten kinne ien bûtenadres diele.

Hâld it opnij-probearenbelied en poolfernijingen bûten dizze lytse selektor. In dielde iterator hat ek in bewust eigendommodel yn konkurrearjende koade nedich, sadat it keazen einpunt ferbûn bliuwt mei de operaasje dy't it krige.

Relatearre artikelen