Αν ένα ασύγχρονο αίτημα λήξει πριν ανοίξει σύνδεση, ελέγξτε τα ενεργά όρια του μεταφορέα καθώς και τα χρονικά όρια του δικτύου. Το 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Συνδέσεις που διατηρούνται στην προσωρινή μνήμη μετά τη χρήση

Πολλοί ιστότοποι που χρησιμοποιούν τον ίδιο διακομιστή μεσολάβησης δεν λαμβάνουν αυτόματα ξεχωριστά όρια συνδέσεων μεσολάβησης. Η χωρητικότητα της ανενεργής προσωρινής μνήμης ούτε ανοίγει συνδέσεις εκ των προτέρων ούτε τις κάνει εναλλάξιμες: η επαναχρησιμοποίηση εξαρτάται από τη διαδρομή, τον προορισμό, το πρωτόκολλο και την ταυτοποίηση.

Κρατήστε τον προϋπολογισμό εργασιών της εφαρμογής και τυχόν όριο παρόχου συνεπή με αυτούς τους προϋπολογισμούς μεταφοράς. Μετρούν συνδέσεις, όχι αιτήματα ανά δευτερόλεπτο. Η αύξηση του χρονικού ορίου υποδοχής δεν μπορεί να δείξει αν τον χρόνο τον κατανάλωσε ουρά ή αναμονή δικτύου.

Σχετικά άρθρα