Talloka b'mod atomiku l-proxy l-inqas użat f'Redis
Uża sett magħżul u skritt Lua qasir biex tagħżel u żżid l-għadd ta' allokazzjonijiet ta' proxy fost il-ħaddiema.
Meta diversi ħaddiema jaqsmu pool permezz ta' Redis, sett magħżul jista' jimplimenta politika sempliċi: agħżel il-proxy eliġibbli bl-inqas allokazzjonijiet irreġistrati. Aħżen l-identifikatur tal-proxy bħala membru u l-għadd tal-allokazzjonijiet tiegħu bħala punteġġ.
Għal pool li jservi talbiet pubbliċi permessi, il-lista tal-proxy b'xejn tista' tforni kandidati tal-punt tat-tmiem biex jiġu evalwati skont ir-regoli tal-eliġibbiltà ta' dak il-pool. Ibda l-membri eliġibbli b'għadd inizjali miftiehem. Imbagħad agħmel l-għażla u ż-żieda operazzjoni waħda fuq in-naħa tas-server:
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 chosenGħaddi ċ-ċavetta tas-sett magħżul bħala l-unika argument taċ-ċavetta tal-iskritt permezz tal-interface EVAL tal-klijent Redis tiegħek. Pool vojt jipproduċi riżultat null li l-applikazzjoni trid timmaniġġja mingħajr ma tagħmel talba.
Għaliex ingħaqqdu ż-żewġ kmandi?
Qari u żidiet separati jħallu żewġ ħaddiema josservaw l-istess minimu qabel ma xi ħadd jaġġornah. Redis jeżegwixxi skritt Lua b'mod atomiku, għalhekk ħaddiem ieħor ma jistax idaħħal għażla bejn il-qari u ż-żieda ta' dan l-iskritt. Żomm l-iskritt qasir għax l-eżekuzzjoni tiegħu timblokka xogħol ieħor ta' Redis.
ZRANGE jirritorna l-inqas punteġġ l-ewwel; punteġġi ugwali jiġu riżolti bl-ordni tal-membri, mhux b'mod każwali. ZINCRBY iżid il-punteġġ tal-membru magħżul b'wieħed għall-allokazzjoni li jmiss.
Iddefinixxi xi jfisser il-punteġġ
Dan jgħodd allokazzjonijiet, inkluż allokazzjoni li t-talba tan-network tagħha tfalli aktar tard. Ma jkejjelx il-latenza, talbiet li jirnexxu jew xogħol li qed isir bħalissa. Xorta huwa possibbli li tagħżel il-membru eliġibbli waħdieni ripetutament; l-iskritt ma jirriżervahx b'mod esklużiv.
Żomm l-eliġibbiltà bir-regoli tas-saħħa u tal-politika tal-pool. Jekk tneħħi membru u aktar tard terġa' tistabbilixxih, iddeċiedi jekk l-għadd storiku tiegħu għandux jinżamm. Li tibda proxy restawrata minn żero jista' jikkonċentra l-allokazzjonijiet fuqha waqt li tkun qed tlaħħaq.
Politika ta' l-inqas konkorrenza teħtieġ ċiklu tal-ħajja differenti, inkluż it-tlestija u l-immaniġġjar ta' xogħol abbandunat. Tinterpretax dan il-counter kumulattiv bħala dak iċ-ċiklu tal-ħajja.