WooCommerce 它已成为广泛使用的模块 网上商店. SEO,产品,库存管理,简洁直观的代码,简单的管理界面以及为Woo开发的成千上万的插件,只是其中的一些论据,当您考虑开发在线商店时就值得一试。
像任何 CMS 一样,Woo 也不例外,在与其他插件的各种使用或交互场景中可能发生的奇怪现象。 Word按。
在资源服务器上 硬件 相当慷慨,我注意到 数据库服务 (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服务。 因此,具有“僵尸”状态的条目将不再被删除。
重要的是要知道,如果您有网上商店 WooCommerce,并通过插件连接到Facebook Shops“脸谱网 WooCommerce”,它会自动同步来自 WooCommerce 使用您的 Facebook 商店帐户。 他每 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”将没有问题。
@Stealth
德为 hjælpen。 Du redder min dag og 商店。 Jeg opdagede først dette efter et nedbrud af min 网上商店。 Mange 插件 er begyndt at dumpe deres output i den tabel og det fylder ... Wooping 9.2GB tabel fik min host til at opgive hans ellers Fine opp-tid. Nutrimmer jeg med den Fine kode!
重新选择“wpb_action_scheduler_purge”选项卡并在默认情况下进行此操作。重命名为den til noget i min(默认hedder min db ikke 'wp_') eller er det pärgde en funktion?
Tak for hjælpen og den superfine artikel
希尔森
网易