ਜੇ ਕੋਈ ਅਸਿੰਕ੍ਰੋਨਸ ਬੇਨਤੀ ਕਨੈਕਸ਼ਨ ਖੋਲ੍ਹਣ ਤੋਂ ਪਹਿਲਾਂ ਸਮਾਂ-ਸੀਮਾ ਪਾਰ ਕਰ ਜਾਂਦੀ ਹੈ, ਤਾਂ ਨੈੱਟਵਰਕ ਟਾਈਮਆਊਟ ਦੇ ਨਾਲ-ਨਾਲ ਟਰਾਂਸਪੋਰਟ ਦੀਆਂ ਸਰਗਰਮ ਸੀਮਾਵਾਂ ਵੀ ਜਾਂਚੋ। ਜਦੋਂ ਉਹ ਸੀਮਾਵਾਂ ਭਰੀਆਂ ਹੁੰਦੀਆਂ ਹਨ ਤਾਂ libcurl ਤਬਦੀਲੀਆਂ ਨੂੰ ਕਤਾਰ ਵਿੱਚ ਰੱਖਦਾ ਹੈ, ਅਤੇ ਕਤਾਰ ਵਿੱਚ ਰਹਿੰਦਿਆਂ ਉਹਨਾਂ ਦੇ ਟਾਈਮਆਊਟ ਬਜਟ ਚੱਲਦੇ ਰਹਿੰਦੇ ਹਨ।

Guzzle 7 ਦੇ ਸਾਂਝੇ cURL multi handler ਲਈ:

use GuzzleHttp\Client;
use GuzzleHttp\HandlerStack;
use GuzzleHttp\Handler\CurlMultiHandler;

$multi = new CurlMultiHandler([
    'options' => [
        CURLMOPT_MAX_TOTAL_CONNECTIONS => 24,
        CURLMOPT_MAX_HOST_CONNECTIONS => 4,
    ],
]);
$client = new Client([
    'handler' => HandlerStack::create($multi),
]);

ਇਸ ਕਲਾਇੰਟ ਨੂੰ ਅਸਿੰਕ੍ਰੋਨਸ ਕੰਮ ਲਈ ਵਰਤੋ ਅਤੇ ਓਪਰੇਸ਼ਨਾਂ ਉੱਤੇ ਇਸ ਦਾ ਲੋੜੀਂਦਾ ਪ੍ਰੌਕਸੀ ਵਿਕਲਪ ਦਿਓ। ਮੁੱਲ ਉਦਾਹਰਨ ਬਜਟ ਹਨ। ਜਨਤਕ ਵਿਚੋਲੇ ਰਾਹੀਂ ਮਨਜ਼ੂਰ ਜਨਤਕ ਬੇਨਤੀਆਂ ਲਈ, HTTP ਪ੍ਰੌਕਸੀ ਸੂਚੀ ਓਪਰੇਸ਼ਨਾਂ ਦੇ ਪ੍ਰੌਕਸੀ URL ਲਈ ਉਮੀਦਵਾਰ ਦਿੰਦੀ ਹੈ।

ਵਿਕਲਪਬਜਟ
MAX_TOTAL_CONNECTIONSmulti handler ਅਧੀਨ ਇੱਕੋ ਸਮੇਂ ਖੁੱਲ੍ਹੇ ਕਨੈਕਸ਼ਨ
MAX_HOST_CONNECTIONSਇੱਕ ਹੋਸਟ/ਪੋਰਟ ਨਾਲ ਕਨੈਕਸ਼ਨ; ਪ੍ਰੌਕਸੀ ਕਨੈਕਸ਼ਨ ਪ੍ਰੌਕਸੀ ਐਂਡਪੌਇੰਟ ਵਿਰੁੱਧ ਗਿਣੇ ਜਾਂਦੇ ਹਨ
MAXCONNECTSਵਰਤੋਂ ਤੋਂ ਬਾਅਦ ਕੈਸ਼ ਵਿੱਚ ਰੱਖੇ ਕਨੈਕਸ਼ਨ

ਇੱਕੋ ਪ੍ਰੌਕਸੀ ਵਰਤਣ ਵਾਲੀਆਂ ਕਈ ਵੈੱਬਸਾਈਟਾਂ ਨੂੰ ਆਪਣੇ-ਆਪ ਵੱਖਰੇ ਪ੍ਰੌਕਸੀ ਕਨੈਕਸ਼ਨ ਕੋਟੇ ਨਹੀਂ ਮਿਲਦੇ। ਨਿਸ਼ਕਿਰਿਆ ਕੈਸ਼ ਸਮਰੱਥਾ ਨਾ ਪਹਿਲਾਂ ਕਨੈਕਸ਼ਨ ਖੋਲ੍ਹਦੀ ਹੈ ਅਤੇ ਨਾ ਹੀ ਉਹਨਾਂ ਨੂੰ ਆਪਸ ਵਿੱਚ ਬਦਲਣਯੋਗ ਬਣਾਉਂਦੀ ਹੈ: ਮੁੜ ਵਰਤੋਂ ਰਸਤੇ, ਮੰਜ਼ਿਲ, ਪ੍ਰੋਟੋਕੋਲ ਅਤੇ ਪ੍ਰਮਾਣਿਕਤਾ ਉੱਤੇ ਨਿਰਭਰ ਕਰਦੀ ਹੈ।

ਐਪਲੀਕੇਸ਼ਨ ਕਾਰਜ ਬਜਟ ਅਤੇ ਕਿਸੇ ਵੀ ਪ੍ਰਦਾਤਾ ਕੋਟੇ ਨੂੰ ਇਹਨਾਂ ਟਰਾਂਸਪੋਰਟ ਬਜਟਾਂ ਨਾਲ ਮੇਲ ਖਾਂਦਾ ਰੱਖੋ। ਉਹ ਕਨੈਕਸ਼ਨ ਗਿਣਦੇ ਹਨ, ਪ੍ਰਤੀ ਸਕਿੰਟ ਬੇਨਤੀਆਂ ਨਹੀਂ। ਸਾਕਟ ਟਾਈਮਆਊਟ ਵਧਾਉਣ ਨਾਲ ਇਹ ਪਛਾਣਿਆ ਨਹੀਂ ਜਾ ਸਕਦਾ ਕਿ ਕਤਾਰ ਨੇ ਜਾਂ ਨੈੱਟਵਰਕ ਉਡੀਕ ਨੇ ਸਮਾਂ ਲਿਆ।

ਸੰਬੰਧਿਤ ਲੇਖ