Go-ত এটা শেয়াৰ কৰা ৰাউণ্ড-ৰবিন প্ৰক্সি চিলেক্টৰ
অনুৰোধসমূহৰ মাজত এটা Go প্ৰক্সি চিলেক্টৰ জীয়াই ৰাখক, শেয়াৰ কৰা নিৰ্বাচন অৱস্থা সুৰক্ষিত কৰক, আৰু এটা পথ বাছনি কৰাৰ লগত তাৰ নিৰ্গমন পৰ্যবেক্ষণৰ পাৰ্থক্য কৰক।
এটা চিলেক্টৰে নিখুঁতভাৱে ঘূৰি চালিও প্ৰথমটো প্ৰক্সি বাছি থকাৰ পৰা নিবাৰণ নহয়। ত্ৰুটিটো হ’ল প্ৰতিটো অনুৰোধৰ বাবে ভুলতে এটা নতুন চিলেক্টৰ সৃষ্টি কৰা, যিয়ে দ্বিতীয়টো বাছনি কৰাৰ আগতেই তাৰ কাউণ্টাৰ পুনৰায় সেট কৰে।
চিলেক্টৰটো এবাৰহে নিৰ্মাণ কৰক আৰু ট্ৰেন্সপ’ৰ্টৰ লগত ৰাখক। HTTP প্ৰক্সি তালিকাএ যেতিয়া অনুৰোধসমূহে ৰাজহুৱা মধ্যস্থতাকাৰীক অনুমতি দিয়ে, URL সংহতিটোৰ বাবে ৰাজহুৱা HTTP প্ৰাৰ্থী যোগাব পাৰে। আগতেই যাচনি কৰা, খালী নোহোৱা প্ৰক্সি URL-ৰ তালিকাৰ পৰা আৰম্ভ কৰক:
func rotatingProxy(urls []*url.URL) func(*http.Request) (*url.URL, error) {
var mu sync.Mutex
next := 0
return func(*http.Request) (*url.URL, error) {
mu.Lock()
selected := urls[next]
next = (next + 1) % len(urls)
mu.Unlock()
return selected, nil
}
}
পৰিৱেষ্টন কৰা এপ্লিকেশ্যই খালী তালিকা নাকচ কৰিব লাগে, URLসমূহ যাচনি কৰিব লাগে আৰু স্বাভাৱিক net/http, net/url আৰু sync ইমপ’ৰ্ট ব্যৱহাৰ কৰিব লাগে। এই চিলেক্টৰে ব্যৱহাৰ কৰি থকাৰ সময়ত তালিকাখন অপৰিৱৰ্তনীয় হৈ থকা উচিত, নাইবা পৃথকভাৱে সংসিঙ্ক্ৰ’নাইজ কৰা ডিজাইনৰ জৰিয়তে সলনি কৰা উচিত।
ঘূৰাই দিয়া ফলনটো এটা সংৰক্ষিত http.Transport-ত সংযুক্ত কৰক। মিউটেক্সে সমসাময়িক কলবেকসমূহৰ মাজত নিৰ্বাচনৰ ক্ৰম সুৰক্ষিত কৰে। ই লেহেমীয়া নেটৱৰ্ক অনুৰোধ সম্পূৰ্ণ হোৱাৰ সময়ত লক ধৰি ৰখাৰ প্ৰয়োজন নকৰে।
মাথোঁ প্ৰিন্ট কৰিবলৈ এটা পথ ব্যৱহাৰ নকৰিব
ডায়াগনষ্টিক বাৰ্তাৰ বাবে চিলেক্টৰটো পুনৰ মাতিলে কাউণ্টাৰটো পুনৰ আগবাঢ়ে। সেই আউটপুটে আপুনি তদন্ত কৰি থকা অনুৰোধে ব্যৱহাৰ কৰা প্ৰাৰ্থীটোৰ সলনি পৰৱৰ্তী প্ৰাৰ্থীটো বৰ্ণনা কৰিব পাৰে। প্ৰকৃত কলবেকৰ ভিতৰত এটা সুৰক্ষিত এণ্ডপইণ্ট চিনাক্তকৰ্তা ব্যৱহাৰ কৰি নিৰ্বাচনটো লিপিবদ্ধ কৰক।
কলবেক আহ্বান কৰাটো অনুৰোধ সফলভাৱে প্ৰেৰণ হোৱাৰ প্ৰমাণ নহয়। ৰিডাইৰেক্ট বা অতিৰিক্ত ট্ৰেন্সপ’ৰ্ট চেষ্টাই “এটা এপ্লিকেশন কল, এটা বাছনি”ৰ সহজ অনুমান জটিল কৰিব পাৰে। যদি এটা ৱৰ্কফ্ল’য়ে কেইবাটাও কাৰ্য্যৰ মাজেৰে এটা পথ ৰাখিব লাগে, ৱৰ্কফ্ল’ৰ সীমাত সেই পথটো বাছক, গোলকীয় ঘূৰ্ণনশীল কলবেক ব্যৱহাৰ নকৰি।
ৰাউণ্ড-ৰবিনে পৃথক ৰাজহুৱা নিৰ্গমনৰ প্ৰতিশ্ৰুতিও নিদিয়ে। ই এণ্ডপইণ্টসমূহৰ সময়সূচী প্ৰস্তুত কৰে। চূড়ান্ত পৰিচয় প্ৰতিটো এণ্ডপইণ্টে যোগোৱা পথৰ এটা ধৰ্ম হৈয়ে থাকে।