פרוקסי B, שוב פרוקסי B, ואז פרוקסי 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 מיובא ושרשימת נקודות הקצה כבר אומתה. מאגר ציבורי יכול להתחיל ברשימת הפרוקסי החינמית כשהפרוטוקולים שלו מתאימים ללקוח הסופי; כלל הבחירה הזה עדיין שולט בחזרות. אם להמתין, להשתמש שוב בנקודת הקצה היחידה או לעצור היא מדיניות של היישום. לולאה אינסופית שממתינה לערך אקראי אחר אינה יכולה לפתור רשימה שמכילה רק אפשרות אחת נפרדת.

בשולח מקבילי, בחירה ותיעוד של נקודת הקצה הקודמת דורשים גם בעלות מתואמת. אחרת שני עובדים יכולים שניהם להוציא את הערך הישן ולבחור באותו ערך הבא.

לבסוף, כלל זה עוסק בזהות נקודת הקצה. שתי נקודות קצה שונות יכולות להוביל ליציאה ציבורית אחת, ונקודת קצה אחת של ספק יכולה להוביל למספר יציאות. תַעדו אותן בנפרד לפני שתחליטו שהסיבוב תקול.

מאמרים קשורים