Slembival, blönduð ferðir og endurtekin proxy-endapunktar
Veldu á milli óháðra slembivala, blandaðrar ferðar og stefnu án tafarlausrar endurtekningar, í stað þess að líta á endurtekinn endapunkt sem bilaðan snúð.
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
| Krafa | Valregla |
|---|---|
| Hvert val er óháð | Veldu úr hæfum lista í hvert sinn |
| Notaðu hvern endapunkt einu sinni áður en þú byrjar upp á nýtt | Stokkað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.