ווען עטלעכע אַרבעטער טיילן אַ באַסיין דורך Redis, קען אַ סאָרטירטע סכום דורכפֿירן אַ פּשוטע פּאָליטיק: אויסקלייבן דעם פּאַסיקן פּראָקסי מיט די ווייניקסטע פֿאַרצייכנטע צוטיילונגען. האַלט אַ פּראָקסי־אידענטיפֿיקאַציע ווי אַ מיטגליד און איר צאָל צוטיילונגען ווי אַ פּונקט.

פֿאַר אַ באַסיין וואָס באַדינט ערלויבטע עפֿנטלעכע בקשות, קען די ליסטע פֿון פֿרײַע פּראָקסיס צושטעלן ענדפּונקט־קאַנדידאַטן צו באַווערטן לויט די פּאַסיקייט־כּללים פֿון יענעם באַסיין. אָנהייב די פּאַסיקע מיטגלידער מיט אַן אָפּגערעדטער אָנהייבצאָל. דערנאָך מאַך די אויסוואַל און די פֿאַרמערונג איין סערווער־זײַטיקע אָפּעראַציע:

local chosen = redis.call('ZRANGE', KEYS[1], 0, 0)[1]
if not chosen then
    return nil
end

redis.call('ZINCRBY', KEYS[1], 1, chosen)
return chosen

שיקט דעם שליסל פֿון דער סאָרטירטער סכום ווי דעם איינציקן שליסל־אַרגומענט פֿון סקריפּט דורך דער EVAL־שניטלעך פֿון אײַער Redis־קליענט. אַ ליידיקער באַסיין פּראָדוצירט אַ null־רעזולטאַט וואָס די אַפּלאַקיישאַן מוז באַהאַנדלען אָן שיקן אַ בקשה.

פֿאַרוואָס צונויפֿרעכענען די צוויי באַפֿעלן?

באַזונדערע לייענען און פֿאַרמערונגען לאָזן צוויי אַרבעטער זען דעם זעלביקן מינימום איידער עמעצער דערהײַנטיקט אים. Redis פֿירט אויס אַ Lua־סקריפּט אַטאָמיש, דערפֿאַר קען אַן אַנדער אַרבעטער נישט אַרײַנשטעלן אַן אויסוואַל צווישן דעם לייענען און דער פֿאַרמערונג פֿון דעם סקריפּט. האַלט דעם סקריפּט קורץ, ווײַל זײַן אויספֿירונג בלאָקירט אַנדערע Redis־אַרבעט.

ZRANGE גיט צוריק דעם נידעריקסטן פּונקט צוערשט; גלײַכע פּונקטן ווערן געלײזט דורך דער סדר פֿון מיטגלידער, נישט צופֿעליק. ZINCRBY פֿאַרמערט דעם פּונקט פֿון דעם אויסגעקליבענעם מיטגליד מיט איין פֿאַר דער ווײַטערדיקער צוטיילונג.

דעפֿינירט וואָס דער פּונקט מיינט

דאָס ציילט צוטיילונגען, אַרײַנגערעכנט אַ צוטיילונג וועמענס נעצווערק־בקשה פֿאַלט שפּעטער דורך. עס מעסט נישט פֿאַרהאַלטן, מצליחדיקע בקשות אָדער אַרבעט וואָס גייט יעצט פֿאָר. עס איז נאָך מעגלעך אָפּטראָגן איבער און איבער דעם איינציקן פּאַסיקן מיטגליד; דער סקריפּט רעזערווירט אים נישט אויסשליסלעך.

האַלט אויף פּאַסיקייט מיט די געזונט־ און פּאָליטיק־כּללים פֿון באַסיין. אויב איר נעמט אַוועק אַ מיטגליד און שפּעטער באַנייט אים, באַשליסט אייב די היסטאָרישע צאָל זאָל בלײַבן. אָנהייבן אַ באַנייט פּראָקסי פֿון נול קען פֿאַרזאַמלען צוטיילונגען אויף אים בשעת ער כאַפּט אָן.

אַ פּאָליטיק פֿון ווייניקסטער צײַטלעכקייט פֿאָדערט אַן אַנדער לעבנסציקלוס, אַרײַנגערעכנט פֿאַרענדיקונג און באַהאַנדלונג פֿון פֿאַרלאָזטע אַרבעטן. טייטש נישט דעם קומערדיקן ציילער ווי יענעם לעבנסציקלוס.

פֿאַרבונדענע אַרטיקלען