Ένα αίτημα Guzzle μπορεί να λήξει ενώ περιμένει θέση σύνδεσης
Ορίστε τους ενεργούς προϋπολογισμούς συνδέσεων του cURL multi στον κοινό handler και διακρίνετέ τους από τη χωρητικότητα της ανενεργής προσωρινής μνήμης.
Αν ένα ασύγχρονο αίτημα λήξει πριν ανοίξει σύνδεση, ελέγξτε τα ενεργά όρια του μεταφορέα καθώς και τα χρονικά όρια του δικτύου. Το libcurl βάζει τις μεταφορές σε ουρά όταν αυτά τα όρια είναι κατειλημμένα, και οι προϋπολογισμοί χρονικού ορίου τους συνεχίζουν όσο βρίσκονται στην ουρά.
Για τον κοινό cURL multi handler του Guzzle 7:
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 | Συνδέσεις που διατηρούνται στην προσωρινή μνήμη μετά τη χρήση |
Πολλοί ιστότοποι που χρησιμοποιούν τον ίδιο διακομιστή μεσολάβησης δεν λαμβάνουν αυτόματα ξεχωριστά όρια συνδέσεων μεσολάβησης. Η χωρητικότητα της ανενεργής προσωρινής μνήμης ούτε ανοίγει συνδέσεις εκ των προτέρων ούτε τις κάνει εναλλάξιμες: η επαναχρησιμοποίηση εξαρτάται από τη διαδρομή, τον προορισμό, το πρωτόκολλο και την ταυτοποίηση.
Κρατήστε τον προϋπολογισμό εργασιών της εφαρμογής και τυχόν όριο παρόχου συνεπή με αυτούς τους προϋπολογισμούς μεταφοράς. Μετρούν συνδέσεις, όχι αιτήματα ανά δευτερόλεπτο. Η αύξηση του χρονικού ορίου υποδοχής δεν μπορεί να δείξει αν τον χρόνο τον κατανάλωσε ουρά ή αναμονή δικτύου.