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 ਵਿੱਚ ਨਹੀਂ ਹਨ। ਐਗਜ਼ਿਟ ਪਤਾ ਮੰਜ਼ਿਲ-ਪਾਸੇ ਦਾ ਇੱਕ ਹੋਰ ਨਿਰੀਖਣ ਹੈ, ਸੰਰਚਿਤ ਪ੍ਰਵੇਸ਼ ਤੋਂ ਵੱਖਰਾ।

ਸੀਮਿਤ ਕੰਮ ਜਾਂਚਕਰਤਾ ਨੂੰ ਰਸਤੇ ਦਾ ਮੁਲਾਂਕਣ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ ਆਪਣੇ ਸਾਕਟ, ਮੈਮੋਰੀ ਜਾਂ ਸ਼ਡਿਊਲਰ ਖ਼ਤਮ ਕਰਨ ਤੋਂ ਰੋਕਦਾ ਹੈ। ਪੜਾਅਵਾਰ ਨਤੀਜਾ ਚੋਣ ਨੀਤੀ ਲਈ ਲਾਭਦਾਇਕ ਰਹਿੰਦਾ ਹੈ, ਬਿਨਾਂ ਇਹ ਦਰਸਾਏ ਕਿ ਇੱਕ ਸਫਲ ਮੰਜ਼ਿਲ ਐਂਡਪੌਇੰਟ ਨੂੰ ਹਰ ਥਾਂ ਵਧੀਆ ਬਣਾ ਦਿੰਦੀ ਹੈ।

ਸੰਬੰਧਿਤ ਲੇਖ