解决wp_actionscheduler_logs表格巨大的问题

作者: LAOXU, 更新日期: 2024-03-27

今天帮一个朋友解决了这个表格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
}

关于我

一个熟悉WordPress建站推广的外贸人。

在自己折腾的过程中,把经验积累记录下来,主要包括网站主机、后端、前端、内容营销、Google Ads、网站数据分析、加速优化等,纯佛系输出。

如果我的文章刚好对你有用,那不胜荣幸;如果你在WP建站过程中遇到了一些技术问题,或许我可以解决其中的80-90%。read more...

关注公众号,获取最新文章推送。

210 studio wechat