后台仪表盘显示订阅者一千二百人,实际邮件列表只有三百多,数字三个月没动过,换设备看也一样。日志里能对上时间点,这种反而好排。
统计字段是从已经停用的 FeedBurner 接口拉的,接口关停后返回值一直是最后一次成功的缓存。订阅人数存在 transient 里,过期时间设成了永不过期。邮件订阅和 RSS 订阅本来就是两套数,被合成了一个。这一点先确认清楚,后面就不用反复试。
SELECT COUNT(*) FROM wp_subscribers WHERE status = 'confirmed'; SELECT COUNT(DISTINCT ip) FROM wp_feed_hits WHERE created_at > NOW() - INTERVAL 7 DAY;
这次卡住的地方就在「订阅数统计」这一环,单独把它拎出来验证,别和其他改动混在同一次发布里。线上出问题先对时间点,跟发布、备份、任务执行的时刻排一排,能省掉一半功夫。
处理上按这个顺序:分开统计 RSS 阅读器请求数和邮件订阅确认人数,不要合成一个指标;确认数据源还在产出,接口停用就换成本地计数;给缓存加过期时间,取不到新值时要显示未知而不是旧数。
结果对不对很好判断,面板数字与邮件列表的实际确认人数一致,一天内会随订阅变化。
