একজন worker একটি ব্যবহারযোগ্য প্রক্সি খুঁজে পায়। আপনি তার ঠিকানা ফেরত দেন, অন্য ফিউচারগুলিতে cancel কল করেন, এবং নেটওয়ার্ক কার্যকলাপ বন্ধ হবে বলে আশা করেন। নাও বন্ধ হতে পারে।

একটি Future তার callable শুরু হওয়ার আগেই বাতিল করা যায়। একটি থ্রেড ইতিমধ্যে একটি অনুরোধ চালাচ্ছে, তখন তার Future বাতিল করলে সেই সকেট কাজ বাধা পায় না। worker-এর নিজের সীমিত নেটওয়ার্ক কাজ এবং পরিষ্কার করার পথ দরকার।

executor-এর আয়ুষ্কালও গুরুত্বপূর্ণ। ThreadPoolExecutor কনটেক্সট ছেড়ে দিলে তার কাজ শেষ হওয়ার জন্য অপেক্ষা করে। একটি দ্রুত ফলাফল খুঁজে তারপর কয়েকটি ধীরগতির worker-এর জন্য অপেক্ষা করলে কলারের মোট বিলম্ব বিজয়ীর রিপোর্ট করা লেটেন্সির মতো একেবারেই নাও দেখাতে পারে।

রেস শুরু করার আগেই সীমিত করুন

  • একটি অসীম পাবলিক তালিকা জমা দেওয়ার পরিবর্তে একসঙ্গে পরীক্ষার সংখ্যা সীমিত করুন। বিনামূল্যের প্রক্সি তালিকা পরীক্ষকের ইনপুটের জন্য প্রার্থী যোগায়, প্রতিটি এন্ডপয়েন্টের প্রোটোকল worker-এর জন্য রাখা হয়।
  • প্রতিটি অনুরোধকে উপযুক্ত সংযোগ ও পঠন নীতি দিন।
  • কলারকে সামগ্রিক সিদ্ধান্ত বাজেট দিন।
  • সিদ্ধান্তের পরে বেঁচে থাকা worker-দের ফলাফল কে নিষ্কাশন বা বন্ধ করে তা নির্ধারণ করুন।

একটি Future-এর জন্য কম অপেক্ষা করা মানে তার অন্তর্নিহিত অনুরোধ ছোট করা নয়। একইভাবে, ফলাফল ত্যাগ করলে প্রতিটি নেটওয়ার্ক সম্পদ সঙ্গে সঙ্গে মুক্ত হয় না।

প্রথম সফল ফলাফলও কেবল প্রথম সফল পরীক্ষা। এটি শিডিউলিং, ক্যাশে করা সংযোগ এবং নির্দিষ্ট পরীক্ষা গন্তব্যের উপর নির্ভর করতে পারে। এটি প্রমাণ করে না যে এন্ডপয়েন্টটি সর্বজনীনভাবে দ্রুততম বা আসল কাজটি সফল হবে।

প্রায়ই সাম্প্রতিক পর্যবেক্ষণসহ একটি ছোট রাখা পুল প্রতিটি ডাউনলোডের আগে পুরো তালিকার সঙ্গে রেস করার চেয়ে সহজ। আসল অপারেশনের ফলাফল ব্যবহার করে রেকর্ড হালনাগাদ করুন, ব্যর্থতার জন্য নিয়ন্ত্রিত পুনরুদ্ধার নীতিসহ। প্রিফ্লাইট তার খরচ অর্জন করা উচিত, অভ্যাসবশত প্রতিটি কাজ দ্বিগুণ করার বদলে।

সম্পর্কিত নিবন্ধ