商品批量导入跑了一晚,第二天首页 TTFB 从 80 毫秒涨到 900 毫秒,缓存命中率掉到 12%。缓存插件的清理日志一行接一行,全是同一个刷新动作。乍看像缓存或者权限的锅,追下去往往不是。
add_action("abc_import_finished", function () {
wp_cache_flush(); // 只在整批结束时执行一次
abc_purge_page_cache(["post_id" => 0]);
});
追下去是这么回事:插件在每次写操作后都调用整站缓存刷新,导入几千条就是几千次全清。缓存刚生成又被删掉,访客请求全部回源,首页自然慢下来。
「插件清理缓存冲突」相关的日志我一般连着看前后五分钟,单看一条报错经常判断不出是哪一步失败。测试环境和线上的差别,往往就在版本号和那几行被忽略的配置上。
线上出问题先对时间点,跟发布、备份、任务执行的时刻排一排,能省掉一半功夫。
具体做法是,把清缓存从单条保存里挪到批量流程结束 只做一次;刷新范围缩到受影响的文章或分类 不要整站;导入期间临时关掉页面缓存 跑完再打开。
验收就看一点,再次批量导入后缓存清理日志只有一行,首页 TTFB 回到 100 毫秒以内。
