WooCommerce υπό φορτίο: όταν ο host ξεμένει από PHP workers
Η cache σελίδων επιτρέπει σε ένα κατάστημα WooCommerce να σερβίρει σελίδες προϊόντων σε πλήθος. Το checkout είναι αλλιώς. Κάθε βήμα — ενημέρωση καλαθιού, υπολογισμός αποστολής, πληρωμή — τρέχει PHP για έναν πελάτη, και υπάρχει σταθερός αριθμός workers για να το κάνει.

Τι είναι ένας PHP worker
Ένας worker χειρίζεται ένα αίτημα εκτός cache τη φορά. Οι managed WordPress hosts πουλάνε πακέτα με συγκεκριμένο αριθμό. Όσο όλοι είναι απασχολημένοι, τα νέα αιτήματα περιμένουν σε ουρά· αν περιμένουν πολύ, λήγουν με 502 ή 504.
Δεν απασχολούν workers μόνο οι πελάτες. Συνεδρίες admin, εργασίες παρασκηνίου, bots που σαρώνουν URLs φίλτρων και αργές κλήσεις σε εξωτερικά APIs κρατούν όλα έναν worker όσο τρέχουν.
Γιατί το νιώθει πρώτα το checkout
Η περιήγηση συνεχίζει να δουλεύει, γιατί οι σελίδες προϊόντων έρχονται από cache. Το checkout δεν μπορεί, οπότε είναι το πρώτο που αργεί και το πρώτο που αποτυγχάνει — ακριβώς τη στιγμή με την περισσότερη κίνηση.
Ένα αργό API αποστολών ή πληρωμών το χειροτερεύει: κάθε checkout κρατά τον worker περισσότερο, η ουρά μεγαλώνει, και ένα email προσφοράς μπορεί να καταλήξει σε κατάστημα που φορτώνει αλλά δεν δέχεται παραγγελίες.
Προετοιμασία
Ρωτήστε τον host πόσους workers έχετε και τι γίνεται όταν είναι όλοι απασχολημένοι. Μπλοκάρετε ή περιορίστε τα bots σε URLs καλαθιού και φίλτρων, και κρατήστε τις αργές εργασίες έξω από τη διαδρομή του αιτήματος.
Πριν από μια καμπάνια, δοκιμάστε το checkout ενώ το site έχει κίνηση, όχι μόνο όταν είναι ήσυχο. Κατά τη διάρκειά της, ένας έλεγχος checkout κάθε λίγα λεπτά σας λέει πότε το «αργό» έγινε «αποτυγχάνει». Σχετικά: cart fragments και Action Scheduler.
Ελέγξτε το δικό σας κατάστημα τώρα με τον δωρεάν έλεγχο checkout WooCommerce: περνά το checkout σε πραγματικό browser και δείχνει το βήμα όπου σταματά.
Συχνές ερωτήσεις
Τι είναι ένας PHP worker;
Μια διεργασία που εξυπηρετεί ένα μη αποθηκευμένο αίτημα PHP τη φορά. Καλάθι, checkout και αιτήματα AJAX δεν μπαίνουν σε cache, οπότε όλα χρειάζονται worker.
Πώς καταλαβαίνω ότι τελείωσαν οι PHP workers;
Τα αιτήματα checkout μπαίνουν σε ουρά και λήγουν με σφάλματα 502 ή 504 ενώ οι αποθηκευμένες σελίδες φορτώνουν· τα panels hosting συχνά δείχνουν ότι χτυπήθηκε το όριο workers ή entry processes.
Πώς ετοιμάζω το WooCommerce για προσφορές;
Αυξήστε τους workers, μειώστε τα μη αποθηκευμένα AJAX όπως τα cart fragments, μπλοκάρετε bots, και δοκιμάστε το checkout υπό φόρτο πριν την προσφορά.