var options = new ParallelOptions
{
    MaxDegreeOfParallelism = 8,
    CancellationToken = cancellationToken
};
await Parallel.ForEachAsync(endpoints, options,
    async (endpoint, token) =>
    {
        var result = await ProbeAsync(endpoint, target, token);
        observations.Add(result);
    });

প্রতিটি এন্ডপয়েন্টের জন্য আলাদা টাস্ক শুরু না করে একটি সীমিত কর্মী পুল ব্যবহার করুন। অনুমোদিত পাবলিক লক্ষ্যের বিরুদ্ধে যাচাইয়ের জন্য বিনামূল্যের প্রক্সি তালিকা প্রার্থী সারি দেয়; প্রোব তৈরি করার সময় প্রতিটি এন্ট্রির প্রোটোকল সংরক্ষণ করুন। এই .NET সময়সূচি খণ্ডটি প্রক্সি-সচেতন ProbeAsync এবং থ্রেড-নিরাপদ observations সংগ্রাহক ধরে নেয়। আট একটি দৃষ্টান্তমূলক সীমা, মাপা সর্বোত্তম নয়। প্রোবের এখনও প্রতি-প্রচেষ্টা সীমা এবং সম্পূর্ণ কাজ বাতিলের প্রয়োজন।

প্রতিটি সম্পূর্ণ ফলাফল তার ইনপুটের সঙ্গে রাখুন, যদিও সম্পূর্ণ হওয়ার ক্রম ভিন্ন হয়। প্রোটোকল, এন্ডপয়েন্ট, লক্ষ্য, পদ্ধতি, অতিবাহিত সময় ও ফলাফল লিপিবদ্ধ করুন। সংযোগ ব্যর্থতা, প্রক্সি লগইন প্রত্যাখ্যান, প্রত্যাখ্যাত CONNECT এবং ওয়েবসাইট থেকে প্রাপ্ত উত্তর ভিন্ন ভিন্ন পর্যবেক্ষণ।

TCP পোর্ট খোলা থাকা প্রক্সি আলোচনা প্রমাণ করে না। প্রক্সি ঠিকানাটি একটি ওয়েবসাইট হিসেবে আনা লক্ষ্য অনুরোধে এটি ব্যবহার করার থেকে আলাদা।

প্রয়োজনীয় সামর্থ্য অনুযায়ী লক্ষ্য ও পদ্ধতি বাছুন। HEAD শরীরের ট্রাফিক বাঁচাতে পারে কিন্তু GET উপযোগী বিষয়বস্তু ফেরত দেয় তা প্রমাণ করে না; একটি সাইট একটি প্রত্যাখ্যান করে অন্যটি অনুমোদন করতে পারে। HTTPS সাধারণ HTTP-তে অনুপস্থিত CONNECT ও গন্তব্য TLS যোগ করে। প্রস্থান ঠিকানা গন্তব্য-পক্ষের আরেকটি পর্যবেক্ষণ, কনফিগার করা প্রবেশ থেকে পৃথক।

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

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