Αν κάθε προορισμός χρησιμοποιεί έναν λογαριασμό proxy, το όριο ταυτόχρονων αιτημάτων αυτού του λογαριασμού μπορεί να καταναλωθεί σε όλους αυτούς τους προορισμούς. Ένα όριο ανά τομέα από μόνο του δεν εκφράζει αυτόν τον κοινό προϋπολογισμό.

Για έναν υποθετικό λογαριασμό που επιτρέπει το πολύ 20 ταυτόχρονα αιτήματα, κρατήστε κάποιο περιθώριο και ορίστε το καθολικό όριο του downloader του crawler:

CONCURRENT_REQUESTS = 16

Αυτή είναι μια ενδεικτική κατανομή, όχι συνιστώμενη τιμή για κάθε πάροχο. Το Scrapy ορίζει το CONCURRENT_REQUESTS ως τον μέγιστο αριθμό ταυτόχρονων αιτημάτων του downloader. Οι έλεγχοι ανά τομέα μπορούν να μειώσουν περαιτέρω την παραλληλία· δεν αντικαθιστούν το καθολικό ανώτατο όριο.

Συμπεριλάβετε και άλλους crawlers στον υπολογισμό. Δύο ανεξάρτητοι crawlers με 16 αιτήματα ο καθένας μπορούν από κοινού να υπερβούν ένα κοινό όριο 20. Μοιράστε τον προϋπολογισμό συνειδητά ή επιβάλετε κοινό όριο εκεί όπου συναντώνται αυτοί οι πελάτες.

Καθορίστε επίσης τι μετρά ο πάροχος. Τα αιτήματα HTTP, οι ανοιχτές συνδέσεις TCP, τα ενεργά τούνελ και τα αιτήματα ανά δευτερόλεπτο είναι διαφορετικά μεγέθη. Οι μόνιμες συνδέσεις και η πολυπλεξία μπορούν να αποκλίνουν τους αριθμούς τους. Επομένως, μια ρύθμιση παραλληλίας αιτημάτων δεν είναι πλήρης περιοριστής συνδέσεων ή ρυθμού.

Διατηρήστε τον ρυθμό του ιστότοπου-στόχου ως ξεχωριστό περιορισμό. Χαμηλότερη παραλληλία ή καθυστέρηση λήψης μπορεί να παραμένει κατάλληλη για έναν μεμονωμένο προορισμό ακόμη και όταν ο λογαριασμός proxy έχει αχρησιμοποίητη χωρητικότητα.

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