ΔΙΟΡΘΩΣΤΕ ΤΕΡΑΣΤΙΚΟΥΣ πίνακες 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 Shops μέσω της προσθήκης "Facebook για WooCommerce", συγχρονίζει αυτόματα τα προϊόντα από WooCommerce με τον λογαριασμό σας στο Facebook Shops. Και το κάνει κάθε 15 λεπτά. Αυτές οι εγγραφές SQL, αν δεν ελέγχονται, μπορείτε να λάβετε αρκετές εκατοντάδες χιλιάδες γραμμές"wc_facebook_regenerate_feed" σε "wp_actionscheduler_actions".

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

Ανοίξτε το αρχείο functions.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".

Παθιασμένος με την τεχνολογία, γράφω με ευχαρίστηση StealthSettings.com από το 2006. Έχω μεγάλη εμπειρία σε λειτουργικά συστήματα: macOS, Windows και Linux, αλλά και σε γλώσσες προγραμματισμού και πλατφόρμες blogging (WordPress) και για ηλεκτρονικά καταστήματα (WooCommerce, Magento, PrestaShop).

πώς να » περιέργεια » ΔΙΟΡΘΩΣΤΕ ΤΕΡΑΣΤΙΚΟΥΣ πίνακες SQL: wp_actionscheduler_actions & wp_actionscheduler_logs [WooCommerce Συμβουλές]

1 σκέψη σχετικά με «ΔΙΟΡΘΩΣΗ ΤΕΡΑΣΤΙΩΝ πινάκων SQL: wp_actionscheduler_actions & wp_actionscheduler_logs [WooCommerce Συμβουλές]"

  1. @Stealth
    Λήψη για hjælpen. Du redder min dag og shop. Jeg opdagede πρώτος έλεγχος και nedbrud af min webshop. Mange plugins er begyndt at dumpe deres output i den tabel og det fylder… Wooping 9.2 GB πίνακας για τη φιλοξενία έως τις προαιρετικές παραδόσεις. Nu trimmer jeg med den πρόστιμο κώδικα!
    Lige et spørgsmål på falde rebet denne πίνακας “wpb_action_scheduler_purge” er det en default i db'en eller skal jeg evt. μετονομασία den til noget i min (default hedder min db ikke 'wp_') eller er det måske en funktion;
    Λήψη για hjælpen og den super fine artikel

    Χίλσεν
    Νετζί

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