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 додава CONNECT и TLS на одредиштето што ги нема во обичен HTTP. Излезната адреса е уште едно набљудување од страната на одредиштето, одвоено од конфигурираниот влез.

Ограничената работа спречува проверувачот да ги исцрпи сопствените сокети, меморија или распоредувач пред да може да ја оцени рутата. Етапниот резултат останува корисен за политиката на избор без да се преправа дека една успешна дестинација ја прави крајната точка универзално добра.

Поврзани статии