WooCommerce széles körben használt modullá vált online boltok. SEO, a termék, a készletkezelés, a tiszta és intuitív kód, az egyszerű adminisztrációs felület és a Woo számára kifejlesztett bővítmények ezrei - csak néhány olyan érv, amely miatt érdemes eséllyel egy online áruház kifejlesztésére gondolni.
Mint minden CMS, a Woo sem kivétel a furcsaságok alól, amelyek különféle használati vagy interakciós forgatókönyvekben előfordulhatnak más bővítményekkel. WordPress.
Erőforrás-kiszolgálón hardver elég nagylelkű, ezt vettem észre adatbázis szolgáltatás (mysqld) a RAM majdnem 80-90% -át igényli. Elég súlyos probléma, mert egyszerűen nem értettem, hogy a 110-es hiba periodikusan honnan származik (110: A kapcsolat elévült).
Az SQL folyamatok alaposabb vizsgálata során azt tapasztaltam, hogy egy adatbázis két, meglehetősen nagy mennyiségű táblázattal rendelkezik: wp_actionscheduler_actions si wp_actionscheduler_logs.
Normális ütemezett akciók az WooCommerce műveletütemező végrehajtásuk után automatikusan törölni kell őket. Ez nem mindig történik meg, és elakadnak a következő állapotú wp_actionsscheduler_actions műveletekben: sikertelen, törölve, alatt vagy teljes.
A fenti képen a táblázatok "wp_actionsscheduler"Csak nekik van alig több mint 15 MB. Sajnálom, hogy nem inspiráltak képernyőképet készíteni, amikor voltak 1.2 GB. Ennek ellenére 15 MB elegendő egy olyan táblához, amely a WooCommerce ütemezett műveleteit tartalmazza.
Ezek a "duzzadt" asztalok abból adódnak A WP-Cron nem törli a bejegyzéseket akik státusszal rendelkeznek "sikertelen","törölve"És"teljes“. Általában ezeket a bejegyzéseket automatikusan törölni kell az adatbázisból.
Az ütemezett akciók és azok állapota nagyon könnyen és belátható WooCommerce → Állapot → Ütemezett műveletek.
Az ereszcsatornák tisztítása "sikertelen","törölve"És"teljes"In wp_actionscheduler_actions si wp_actionscheduler_logs
Az adatbázishoz a phpMyAdmin segítségével jutunk el, majd az SQL-nél egymás után hajtjuk végre a parancssorokat:
DELETE FROM `wp_actionscheduler_actions` WHERE `status` = 'canceled'
DELETE FROM `wp_actionscheduler_actions` WHERE `status` = 'complete'
DELETE FROM `wp_actionscheduler_actions` WHERE `status` = 'failed'
Miután ezt a táblázatot megtisztították, ez nem jelenti azt, hogy a probléma megoldódott. Mint fentebb említettem, a fő ok a WP-Cron szolgáltatás letiltása különböző okok miatt. Így a "zombi" státuszú bejegyzéseket már nem lehet törölni.
Nagyon fontos tudni, hogy ha van online áruháza a WooCommerce webhelyen, és az a pluginon keresztül kapcsolódik a Facebook üzletekhez "Facebook a WooCommerce számára", Ez automatikusan szinkronizálja a WooCommerce termékeket a Facebook Shops fiókjával. Körülbelül 15 perc alatt megcsinálja. Ha ezeket az SQL bejegyzéseket nem ellenőrzik, akkor több százezer sort kaphat. "wc_facebook_regenerate_feed" ban ben "wp_actionscheduler_actions".
Ez az intervallum rendben van azoknál az üzleteknél, amelyek nagyszámú megrendelést kapnak, és a Facebook Shops termékkészletét folyamatosan frissíteni kell. Ha továbbra is úgy gondolja, hogy ezek a szinkronizálások a Facebook és az Ön boltja között 24 óránként egyszer elvégezhetők, az alábbi kódsor segíthet.
Nyissa meg a téma functions.php fájlját WordPress / WooCommerce üzemelteti az üzletét, és adja hozzá:
add_filter( 'wc_facebook_feed_generation_interval', function(){ return HOUR_IN_SECONDS * 24; } );
Ezután beállíthatunk egy hét intervallumot az automatikus tisztításhoz:
add_filter( 'action_scheduler_retention_period', 'wpb_action_scheduler_purge' ); function wpb_action_scheduler_purge() { return WEEK_IN_SECONDS; }
Miután elmentette ezeket a módosításokat, nem lesz problémája a "wp_actionscheduler_actions" óriási táblázataival.
@Stealth
Tak for hjælpen. Du redder min dag og shop. Jeg opdagede først dette efter et nedbrud af min webshop. Különböző pluginok kezdő és dumpe deres kimenetre a táblákban és a keresőben ... Wooping 9.2GB tabel fik min host host and opgive hans ellers fine opp-tid. Most trimmer jeg a finom kód!
Lige et spørgsmål på falde rebet denne table “wpb_action_scheduler_purge” default i db'en eller skal jeg evt. átnevezni den til noget i min (default hedder min db ikke 'wp_') eller er det måske en funktion?
Tak for hjælpen og den super fine art
Üdvözlettel
Hálózat