Redisত এটমিকভাৱে সৰ্বনিম্ন ব্যৱহৃত প্ৰক্সী বিতৰণ কৰক
এটা sorted set আৰু চুটি Lua স্ক্ৰিপ্ট ব্যৱহাৰ কৰি কৰ্মীসকলৰ মাজত প্ৰক্সীৰ বিতৰণ গণনা বাছনি আৰু বৃদ্ধি কৰক।
যদি কেইবাটাও কৰ্মীয়ে Redisৰ জৰিয়তে এটা pool ভাগ কৰে, এটা sorted setএ সহজ নীতি ৰূপায়ণ কৰিব পাৰে: আটাইতকৈ কম লিপিবদ্ধ বিতৰণ থকা যোগ্য প্ৰক্সীটো বাছনি কৰক। প্ৰক্সীৰ পৰিচয়ক member হিচাপে আৰু তাৰ বিতৰণ গণনাক score হিচাপে ৰাখক।
অনুমোদিত ৰাজহুৱা অনুৰোধৰ বাবে সেৱা আগবঢ়োৱা poolৰ বাবে, বিনামূলীয়া প্ৰক্সী তালিকাই সেই poolৰ যোগ্যতাৰ নিয়মৰ অধীনত মূল্যায়ন কৰিবলগীয়া endpoint প্ৰাৰ্থী যোগান ধৰিব পাৰে। যোগ্য memberবোৰক সন্মত আৰম্ভণি গণনাৰে আৰম্ভ কৰক। তাৰ পিছত বাছনি আৰু বৃদ্ধি এটা 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 chosensorted setৰ keyটো স্ক্ৰিপ্টৰ একমাত্ৰ key argument হিচাপে আপোনাৰ Redis clientৰ EVAL ইন্টাৰফেছেৰ জৰিয়তে প্ৰেৰণ কৰক। খালী poolএ null ফলাফল উৎপন্ন কৰে যিটো এপ্লিকেশ্বনে অনুৰোধ নকৰাকৈয়ে সামৰ্থন কৰিব লাগিব।
দুয়োটা আদেশ কিয় একত্ৰিত কৰিব?
পৃথক পঢ়া আৰু বৃদ্ধিয়ে দুজন কৰ্মীক কোনোৱে নবঢ়োৱালৈকে একেই নূন্যতম দেখা দিয়ে। Redisএ Lua স্ক্ৰিপ্ট atomicভাৱে চলায়, গতিকে এই স্ক্ৰিপ্টৰ পঢ়া আৰু বৃদ্ধিৰ মাজত অন্য কৰ্মীয়ে বাছনি সুমুৱাব নোৱাৰে। স্ক্ৰিপ্টটো চুটি ৰাখক কাৰণ ইয়াৰ সম্পাদনে অন্য Redis কাম বাধা দিয়ে।
ZRANGEএ আটাইতকৈ কম score প্ৰথমে ঘূৰাই দিয়ে; সমান score memberৰ ক্ৰমেৰে সমাধান হয়, এলোমেলোভাৱে নহয়। ZINCRBYএ পৰৱৰ্তী বিতৰণৰ বাবে বাছনি কৰা memberৰ score একে বৃদ্ধি কৰে।
scoreৰ অৰ্থ নিৰ্ধাৰণ কৰক
এইটোৱে বিতৰণ গণনা কৰে, য'ত পিছত নেটৱৰ্ক অনুৰোধ বিফল হোৱা বিতৰণো অন্তৰ্ভুক্ত। ই latency, সফল অনুৰোধ বা চলি থকা কাম জোখে নাই। একমাত্ৰ যোগ্য member বাৰে বাৰে বাছনি কৰা এতিয়াও সম্ভৱ; স্ক্ৰিপ্টে ইয়াক একচেটিয়াভাৱে সংৰক্ষণ নকৰে।
poolৰ স্বাস্থ্য আৰু নীতি নিয়ম ব্যৱহাৰ কৰি যোগ্যতা বজাই ৰাখক। যদি আপুনি member এটা আঁতৰাই পিছত পুনৰাই স্থাপন কৰে, তেন্তে তাৰ ঐতিহাসিক গণনা ৰখা উচিত নেকি সিদ্ধান্ত ল'ব। পুনৰ স্থাপিত প্ৰক্সীক শূন্যৰ পৰা আৰম্ভ কৰিলে ই নিজকে লগ ধৰাৰ সময়ত বিতৰণ ইয়াৰ ওপৰত কেন্দ্ৰীভূত হ'ব পাৰে।
সৰ্বনিম্ন-সমকালীন নীতিত ভিন্ন জীৱনচক্ৰৰ প্ৰয়োজন, য'ত সমাপ্তি আৰু পৰিত্যক্ত কামৰ পৰিচালনা অন্তৰ্ভুক্ত। এই সঞ্চিত গণনাক সেই জীৱনচক্ৰ বুলি ব্যাখ্যা নকৰিব।