专研WordPress,外贸B端网站建设及引流

解决wp_actionscheduler_logs表格巨大的问题

今天帮一个朋友解决了这个表格wp_actionscheduler_logs超过5个G,导致网站服务器开始报警的问题,而且手动删除之后,很快数据库又被填满了。

表前缀不一定是wp_,也可能是其他定义的前缀,但后面都是一样的。

出现的原因

这个问题出现在woocommerce商城,wp_actionscheduler_logs这个表格是woocommerce用来记录计划任务的日志,例如 cron 的运行、产品同步、升级等。

这个表格默认数据保留(retention)日期是30天,但是可能有朋友遇到这个表格无比巨大,有50G之多。

而且时刻都在增长,手动去删除根本不现实。

这时候,我们其实只需要把数据保留的日期缩短至7天,就可以极大地减小数据库的大小。

解决办法

把下面的代码用code snippets加载到WordPress上,或者是直接添加到子主题的functions.php文件中,即可。

如果这时候再去数据库里浏览这个表格,会发现wp已经在自动删除了的行数,每刷新一次行数都在减少。

add_filter( 'action_scheduler_retention_period', 'bs_action_scheduler_purge' );
/**
 * Change Action Scheduler default purge to 1 week
 */
function bs_action_scheduler_purge() {
 return WEEK_IN_SECONDS; //unit:second
}