Proxy B, aftur proxy B og þá proxy A. Annálinn þinn virðist grunsamlegur, en slembival getur gert nákvæmlega þetta.

Að velja úr sama lista í hverri beiðni leyfir endurtekningar. Með tvo jafnlíklega endapunkta hefur næsta óháða val einn af tveimur möguleika á að passa við þann fyrri. Stutt röð með endurtekningum er ekki sönnun þess að valið hafi hunsað listann.

Veldu hegðunina sem þú þarft í raun

KrafaValregla
Hvert val er óháðVeldu úr hæfum lista í hvert sinn
Notaðu hvern endapunkt einu sinni áður en þú byrjar upp á nýttStokkaðu afrit, notaðu það og byrjaðu þá aðra ferð
Forðastu næstfyrri endapunktinnÚtilokaðu þann endapunkt fyrir valið

Fyrir síðustu stefnuna skaltu meðhöndla tilvikið með einum endapunkti skýrt:

candidates = [endpoint for endpoint in eligible if endpoint != previous]
if not candidates:
    raise RuntimeError("No different eligible proxy is available")
selected = random.choice(candidates)

Þetta brot gerir ráð fyrir að random sé flutt inn og listinn yfir endapunkta þegar staðfestur. Opinbert laug getur byrjað með ókeypis proxy-listann þegar samskiptareglur hans passa við endanlega biðlarann; þessi valregla stýrir enn endurtekningum. Hvort bíða, endurnýta eina endapunktinn eða stöðva er stefna forritsins. Endalaus lykkja sem bíður eftir öðru slembigildi getur ekki leyst lista sem inniheldur aðeins einn mismunandi valkost.

Í samhliða sendingaraðila krefst val og skráning fyrri endapunktsins einnig samræmdrar eignar. Annars geta tveir starfsmenn báðir útilokað gamla gildið og valið sama næsta gildi.

Að lokum snýr þessi regla að auðkenni endapunktsins. Tveir mismunandi endapunktar geta leitt til einnar opinberrar útgöngu, og einn endapunktur þjónustuveitanda getur leitt til fleiri útganganna. Skráðu þá sérstaklega áður en þú ákveður að snúningurinn sé bilaður.

Tengdir greinar