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 chosen

Għ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.

Artikli relatati