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 | ઉપયોગ પછી કેશમાં રાખેલા કનેક્શન |
એક જ પ્રોક્સી વાપરતી ઘણી વેબસાઇટ્સને આપમેળે અલગ પ્રોક્સી કનેક્શન ભથ્થાં મળતાં નથી. નિષ્ક્રિય કેશ ક્ષમતા અગાઉથી કનેક્શન ખોલતી નથી કે તેમને પરસ્પર બદલી શકાય તેવા બનાવતી નથી: પુનઃઉપયોગ માર્ગ, ગંતવ્ય, પ્રોટોકોલ અને પ્રમાણીકરણ પર આધાર રાખે છે.
એપ્લિકેશન ટાસ્ક બજેટ અને કોઈપણ પ્રદાતા ભથ્થું આ ટ્રાન્સપોર્ટ બજેટ સાથે સુસંગત રાખો. તેઓ કનેક્શન ગણે છે, પ્રતિ સેકન્ડ વિનંતીઓ નહીં. સોકેટ ટાઈમઆઉટ વધારવાથી એ ઓળખી શકાતું નથી કે કતાર કે નેટવર્ક પ્રતીક્ષાએ સમય વાપર્યો.