ΕΠΙΔΙΌΡΘΩΣΤΕ ΤΡΑΠΕΖΟΥΣ πίνακες SQL: wp_actionscheduler_actions & wp_actionscheduler_logs [Συμβουλές WooCommerce]

WooCommerce έχει γίνει μια ευρέως χρησιμοποιούμενη ενότητα σε απευθείας σύνδεση καταστήματα. SEO, το προϊόν, η διαχείριση αποθέματος, ο καθαρός και διαισθητικός κώδικας, η απλή διεπαφή διαχείρισης και χιλιάδες πρόσθετα που αναπτύχθηκαν για το Woo, είναι μόνο μερικά από τα επιχειρήματα για τα οποία αξίζει μια ευκαιρία όταν σκέφτεστε να αναπτύξετε ένα ηλεκτρονικό κατάστημα.

Όπως και κάθε CMS, το Woo δεν αποτελεί εξαίρεση στις παραδοχές που μπορούν να προκύψουν σε διαφορετικά σενάρια χρήσης ή αλληλεπίδρασης με άλλες προσθήκες WordPress.
Σε διακομιστή πόρων υλικού αρκετά γενναιόδωρος, το παρατήρησα υπηρεσία βάσης δεδομένων (mysqld) αρχίζει να απαιτεί σχεδόν 80-90% μνήμης RAM. Ένα πολύ σοβαρό πρόβλημα, γιατί απλά δεν κατάλαβα από πού προέρχεται το σφάλμα 110 περιοδικά (110: Ο χρόνος σύνδεσης έληξε).
Κατά τη στενότερη επιθεώρηση των διαδικασιών SQL, βρήκα ότι μια βάση δεδομένων έχει δύο πίνακες με αρκετά μεγάλους όγκους: wp_actionscheduler_actions si wp_actionscheduler_logs.

κανονικά προγραμματισμένες ενέργειες του Προγραμματιστής δράσης WooCommerce θα πρέπει να διαγραφούν αυτόματα μετά την εκτέλεση τους. Αυτό δεν συμβαίνει πάντα και κολλάνε στο wp_actionsscheduler_actions με την κατάσταση: απέτυχε, ακυρώθηκε, εκκρεμής ή πλήρης.

Στην παραπάνω εικόνα, οι πίνακες "wp_actionsscheduler"Έχουν μόνο μόλις πάνω από 15 MB. Λυπάμαι που δεν με ενέπνευσε να τραβήξω ένα στιγμιότυπο οθόνης όταν είχαν 1.2 GB. Ωστόσο, τα 15 MB είναι αρκετά για έναν πίνακα που περιέχει τις προγραμματισμένες ενέργειες του WooCommerce.
Αυτοί οι "πρησμένοι" πίνακες προκύπτουν από αυτό Το WP-Cron δεν διαγράφει καταχωρήσεις που έχουν καθεστώς "απέτυχε","ακυρώθηκε"Και"πλήρης«. Κανονικά αυτές οι καταχωρήσεις πρέπει να διαγράφονται αυτόματα από τη βάση δεδομένων.
Οι προγραμματισμένες ενέργειες και η κατάστασή τους μπορούν να προβληθούν πολύ εύκολα και εύκολα WooCommerce →  κατάσταση →  Προγραμματισμένες ενέργειες.

Πώς να καθαρίσετε τις υδρορροές "απέτυχε","ακυρώθηκε"Και"πλήρης"Σε wp_actionscheduler_actions si wp_actionscheduler_logs

Έχουμε πρόσβαση στη βάση δεδομένων μέσω του phpMyAdmin, και στη συνέχεια στο SQL εκτελούμε τις γραμμές εντολών με τη σειρά:

DELETE FROM `wp_actionscheduler_actions` WHERE `status` = 'canceled'
DELETE FROM `wp_actionscheduler_actions` WHERE `status` = 'complete'
DELETE FROM `wp_actionscheduler_actions` WHERE `status` = 'failed'

Μόλις καθαριστεί αυτός ο πίνακας, δεν σημαίνει ότι το πρόβλημα έχει επιλυθεί. Όπως είπα παραπάνω, η κύρια αιτία είναι η απενεργοποίηση της υπηρεσίας WP-Cron για διάφορους λόγους. Έτσι, οι καταχωρήσεις με κατάσταση "zombie" δεν μπορούν πλέον να διαγραφούν.
Είναι πολύ σημαντικό να γνωρίζετε ότι εάν διαθέτετε ηλεκτρονικό κατάστημα στο WooCommerce και είναι συνδεδεμένο με τα καταστήματα Facebook μέσω της προσθήκης "Facebook για το WooCommerce", Συγχρονίζει αυτόματα τα προϊόντα WooCommerce με τον λογαριασμό σας στο Facebook Shops. Και το κάνει σε περίπου 15 λεπτά. Εάν αυτές οι καταχωρήσεις SQL δεν ελέγχονται, μπορείτε να λάβετε αρκετές εκατοντάδες χιλιάδες γραμμές. "wc_facebook_regenerate_feed" σε "wp_actionscheduler_actions".

Αυτό το διάστημα είναι εντάξει για καταστήματα που έχουν μεγάλο αριθμό παραγγελιών και το απόθεμα προϊόντων Facebook Shops πρέπει να ενημερώνεται συνεχώς. Εάν εξακολουθείτε να πιστεύετε ότι αυτοί οι συγχρονισμοί μεταξύ του Facebook και του καταστήματός σας μπορούν να γίνουν μία φορά κάθε 24 ώρες, η παρακάτω γραμμή κώδικα μπορεί να σας βοηθήσει.

Ανοίξτε το αρχείο λειτουργιών / php του θέματος WordPress / WooCommerce στο οποίο λειτουργεί το κατάστημά σας και προσθέστε:

add_filter( 'wc_facebook_feed_generation_interval', function(){ return HOUR_IN_SECONDS * 24; } );

Στη συνέχεια μπορούμε να ορίσουμε ένα διάστημα μιας εβδομάδας για αυτόματο καθαρισμό:

add_filter( 'action_scheduler_retention_period', 'wpb_action_scheduler_purge' );
function wpb_action_scheduler_purge() {
 return WEEK_IN_SECONDS;
}

Μόλις αποθηκεύσετε αυτές τις αλλαγές, δεν θα έχετε προβλήματα με γιγάντιους πίνακες για το "wp_actionscheduler_actions".

ΕΠΙΔΙΌΡΘΩΣΤΕ ΤΡΑΠΕΖΟΥΣ πίνακες SQL: wp_actionscheduler_actions & wp_actionscheduler_logs [Συμβουλές WooCommerce]

Σχετικά με τον Συγγραφέα

Λαθραία

Παθιασμένος με όλα τα gadget και IT, γράφω με ευχαρίστηση στο μυστικόsettings.com από το 2006 και θέλω να ανακαλύψω μαζί σας νέα πράγματα για υπολογιστές και λειτουργικά συστήματα macOS, Linux, Windows, iOS και Android.

Αφήστε ένα σχόλιο