Proxy B, ξανά proxy B και μετά proxy A. Το αρχείο καταγραφής σας φαίνεται ύποπτο, αλλά ένας τυχαίος επιλογέας επιτρέπεται να κάνει ακριβώς αυτό.

Η επιλογή από την ίδια λίστα σε κάθε αίτημα επιτρέπει επαναλήψεις. Με δύο εξίσου πιθανά τελικά σημεία, η επόμενη ανεξάρτητη επιλογή έχει πιθανότητα μία στις δύο να ταιριάξει με την προηγούμενη. Ένα σύντομο σύνολο που περιέχει επαναλήψεις δεν αποδεικνύει ότι ο επιλογέας αγνόησε τη λίστα.

Επιλέξτε τη συμπεριφορά που χρειάζεστε πραγματικά

ΑπαίτησηΚανόνας επιλογής
Κάθε επιλογή είναι ανεξάρτητηΕπιλέγετε από την κατάλληλη λίστα κάθε φορά
Χρησιμοποιήστε κάθε τελικό σημείο μία φορά πριν ξεκινήσετε ξανάΑνακατέψτε ένα αντίγραφο, καταναλώστε το και μετά ξεκινήστε νέα διαδρομή
Αποφύγετε το αμέσως προηγούμενο τελικό σημείοΕξαιρέστε αυτό το τελικό σημείο πριν από την επιλογή

Για την τελευταία πολιτική, χειριστείτε ρητά την περίπτωση ενός μόνο τελικού σημείου:

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

Αυτό το απόσπασμα προϋποθέτει ότι το random έχει εισαχθεί και η λίστα τελικών σημείων έχει ήδη επικυρωθεί. Μια δημόσια δεξαμενή μπορεί να ξεκινήσει με τη δωρεάν λίστα διακομιστών μεσολάβησης όταν τα πρωτόκολλά της ταιριάζουν στον τελικό πελάτη· αυτός ο κανόνας επιλογής εξακολουθεί να ελέγχει τις επαναλήψεις. Το αν θα περιμένετε, θα επαναχρησιμοποιήσετε το μοναδικό τελικό σημείο ή θα σταματήσετε είναι πολιτική της εφαρμογής. Ένας ατελείωτος βρόχος που περιμένει διαφορετική τυχαία τιμή δεν μπορεί να λύσει μια λίστα που περιέχει μόνο μία διακριτή επιλογή.

Σε έναν ταυτόχρονο αποστολέα, η επιλογή και η καταγραφή του προηγούμενου τελικού σημείου απαιτούν επίσης συντονισμένη ιδιοκτησία. Διαφορετικά δύο εργάτες μπορούν και οι δύο να αποκλείσουν την παλιά τιμή και να επιλέξουν την ίδια επόμενη τιμή.

Τέλος, αυτός ο κανόνας αφορά την ταυτότητα του τελικού σημείου. Δύο διαφορετικά τελικά σημεία μπορούν να οδηγήσουν σε μία δημόσια έξοδο, και ένα τελικό σημείο παρόχου μπορεί να οδηγήσει σε πολλές εξόδους. Καταγράψτε τα ξεχωριστά πριν αποφασίσετε ότι η περιστροφή είναι χαλασμένη.

Σχετικά άρθρα