നിരവധി വർക്കർമാർ 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

ക്രമീകരിച്ച സെറ്റിന്റെ കീ സ്ക്രിപ്റ്റിന്റെ ഏക കീ ആർഗ്യുമെന്റായി നിങ്ങളുടെ Redis ക്ലയന്റിന്റെ EVAL ഇന്റർഫേസ് വഴി നൽകുക. ശൂന്യമായ പൂൾ null ഫലം നൽകുന്നു; അപ്ലിക്കേഷൻ അഭ്യർത്ഥന നടത്താതെ അത് കൈകാര്യം ചെയ്യണം.

എന്തുകൊണ്ട് രണ്ട് കമാൻഡുകൾ ചേർക്കണം?

വേർതിരിച്ച വായനയും വർദ്ധനവും രണ്ട് വർക്കർമാർക്ക് ആരും അപ്ഡേറ്റ് ചെയ്യുന്നതിന് മുൻപ് ഒരേ മിനിമം കാണാൻ അനുവദിക്കുന്നു. Redis Lua സ്ക്രിപ്റ്റ് ആറ്റോമിക് ആയി പ്രവർത്തിപ്പിക്കുന്നു, അതിനാൽ മറ്റൊരു വർക്കർക്ക് ഈ സ്ക്രിപ്റ്റിന്റെ വായനയ്ക്കും വർദ്ധനവിനും ഇടയിൽ തിരഞ്ഞെടുപ്പ് ചേർക്കാനാവില്ല. സ്ക്രിപ്റ്റ് ചെറുതായി സൂക്ഷിക്കുക, കാരണം അതിന്റെ പ്രവർത്തനം മറ്റ് Redis ജോലികൾ തടയുന്നു.

ZRANGE ഏറ്റവും കുറഞ്ഞ സ്കോർ ആദ്യം നൽകുന്നു; തുല്യ സ്കോറുകൾ അംഗ ക്രമത്താൽ പരിഹരിക്കുന്നു, ക്രമരഹിതമായി അല്ല. ZINCRBY അടുത്ത അനുവദനയ്ക്കായി തിരഞ്ഞെടുത്ത അംഗത്തിന്റെ സ്കോർ ഒന്ന് വർദ്ധിപ്പിക്കുന്നു.

സ്കോറിന്റെ അർത്ഥം നിർവചിക്കുക

ഇത് അനുവദനകൾ എണ്ണുന്നു, പിന്നീട് അതിന്റെ നെറ്റ്വർക്ക് അഭ്യർത്ഥന പരാജയപ്പെടുന്ന അനുവദന ഉൾപ്പെടെ. ഇത് കാലതാമസം, വിജയകരമായ അഭ്യർത്ഥനകൾ അല്ലെങ്കിൽ നടന്നുകൊണ്ടിരിക്കുന്ന ജോലി അളക്കുന്നില്ല. ഏക യോഗ്യ അംഗത്തെ ആവർത്തിച്ച് തിരഞ്ഞെടുക്കാൻ ഇപ്പോഴും സാധിക്കും; സ്ക്രിപ്റ്റ് അത് പ്രത്യേകമായി സംവരണം ചെയ്യുന്നില്ല.

പൂളിന്റെ ആരോഗ്യ-നയ നിയമങ്ങൾ ഉപയോഗിച്ച് യോഗ്യത നിലനിർത്തുക. ഒരു അംഗത്തെ നീക്കം ചെയ്ത് പിന്നീട് പുനഃസ്ഥാപിച്ചാൽ, അതിന്റെ ചരിത്ര എണ്ണം നിലനിർത്തണോ എന്ന് തീരുമാനിക്കുക. പുനഃസ്ഥാപിച്ച പ്രോക്സി പൂജ്യത്തിൽ നിന്ന് ആരംഭിക്കുന്നത് അത് പിടിച്ചെടുക്കുന്ന സമയത്ത് അനുവദനകൾ അതിൽ കേന്ദ്രീകരിക്കാൻ ഇടയാക്കാം.

കുറഞ്ഞ സമകാലികതാ നയത്തിന് വ്യത്യസ്ത ജീവിതചക്രം ആവശ്യമാണ്, അതിൽ പൂർത്തീകരണവും ഉപേക്ഷിക്കപ്പെട്ട ജോലികളുടെ കൈകാര്യവും ഉൾപ്പെടുന്നു. ഈ ക്യുമുലേറ്റീവ് കൗണ്ടറെ ആ ജീവിതചക്രമായി വ്യാഖ്യാനിക്കരുത്.

അനുബന്ധ ലേഖനങ്ങൾ