Guzzle ਬੇਨਤੀ ਕਨੈਕਸ਼ਨ ਸਲਾਟ ਦੀ ਉਡੀਕ ਵਿੱਚ ਸਮਾਂ-ਸੀਮਾ ਪਾਰ ਕਰ ਸਕਦੀ ਹੈ
ਸਾਂਝੇ handler ਉੱਤੇ cURL multi ਦੇ ਸਰਗਰਮ ਕਨੈਕਸ਼ਨ ਬਜਟ ਸੈੱਟ ਕਰੋ ਅਤੇ ਉਹਨਾਂ ਨੂੰ ਨਿਸ਼ਕਿਰਿਆ ਕੈਸ਼ ਸਮਰੱਥਾ ਤੋਂ ਵੱਖ ਰੱਖੋ।
ਜੇ ਕੋਈ ਅਸਿੰਕ੍ਰੋਨਸ ਬੇਨਤੀ ਕਨੈਕਸ਼ਨ ਖੋਲ੍ਹਣ ਤੋਂ ਪਹਿਲਾਂ ਸਮਾਂ-ਸੀਮਾ ਪਾਰ ਕਰ ਜਾਂਦੀ ਹੈ, ਤਾਂ ਨੈੱਟਵਰਕ ਟਾਈਮਆਊਟ ਦੇ ਨਾਲ-ਨਾਲ ਟਰਾਂਸਪੋਰਟ ਦੀਆਂ ਸਰਗਰਮ ਸੀਮਾਵਾਂ ਵੀ ਜਾਂਚੋ। ਜਦੋਂ ਉਹ ਸੀਮਾਵਾਂ ਭਰੀਆਂ ਹੁੰਦੀਆਂ ਹਨ ਤਾਂ 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_CONNECTIONS | multi handler ਅਧੀਨ ਇੱਕੋ ਸਮੇਂ ਖੁੱਲ੍ਹੇ ਕਨੈਕਸ਼ਨ |
| MAX_HOST_CONNECTIONS | ਇੱਕ ਹੋਸਟ/ਪੋਰਟ ਨਾਲ ਕਨੈਕਸ਼ਨ; ਪ੍ਰੌਕਸੀ ਕਨੈਕਸ਼ਨ ਪ੍ਰੌਕਸੀ ਐਂਡਪੌਇੰਟ ਵਿਰੁੱਧ ਗਿਣੇ ਜਾਂਦੇ ਹਨ |
| MAXCONNECTS | ਵਰਤੋਂ ਤੋਂ ਬਾਅਦ ਕੈਸ਼ ਵਿੱਚ ਰੱਖੇ ਕਨੈਕਸ਼ਨ |
ਇੱਕੋ ਪ੍ਰੌਕਸੀ ਵਰਤਣ ਵਾਲੀਆਂ ਕਈ ਵੈੱਬਸਾਈਟਾਂ ਨੂੰ ਆਪਣੇ-ਆਪ ਵੱਖਰੇ ਪ੍ਰੌਕਸੀ ਕਨੈਕਸ਼ਨ ਕੋਟੇ ਨਹੀਂ ਮਿਲਦੇ। ਨਿਸ਼ਕਿਰਿਆ ਕੈਸ਼ ਸਮਰੱਥਾ ਨਾ ਪਹਿਲਾਂ ਕਨੈਕਸ਼ਨ ਖੋਲ੍ਹਦੀ ਹੈ ਅਤੇ ਨਾ ਹੀ ਉਹਨਾਂ ਨੂੰ ਆਪਸ ਵਿੱਚ ਬਦਲਣਯੋਗ ਬਣਾਉਂਦੀ ਹੈ: ਮੁੜ ਵਰਤੋਂ ਰਸਤੇ, ਮੰਜ਼ਿਲ, ਪ੍ਰੋਟੋਕੋਲ ਅਤੇ ਪ੍ਰਮਾਣਿਕਤਾ ਉੱਤੇ ਨਿਰਭਰ ਕਰਦੀ ਹੈ।
ਐਪਲੀਕੇਸ਼ਨ ਕਾਰਜ ਬਜਟ ਅਤੇ ਕਿਸੇ ਵੀ ਪ੍ਰਦਾਤਾ ਕੋਟੇ ਨੂੰ ਇਹਨਾਂ ਟਰਾਂਸਪੋਰਟ ਬਜਟਾਂ ਨਾਲ ਮੇਲ ਖਾਂਦਾ ਰੱਖੋ। ਉਹ ਕਨੈਕਸ਼ਨ ਗਿਣਦੇ ਹਨ, ਪ੍ਰਤੀ ਸਕਿੰਟ ਬੇਨਤੀਆਂ ਨਹੀਂ। ਸਾਕਟ ਟਾਈਮਆਊਟ ਵਧਾਉਣ ਨਾਲ ਇਹ ਪਛਾਣਿਆ ਨਹੀਂ ਜਾ ਸਕਦਾ ਕਿ ਕਤਾਰ ਨੇ ਜਾਂ ਨੈੱਟਵਰਕ ਉਡੀਕ ਨੇ ਸਮਾਂ ਲਿਆ।