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