轮询器返回了 None,到底发生了什么?源站可能确实没有新内容,可能服务器挂了,可能接口返回 HTML 而不是 RSS 让解析器悄悄产出零条,也可能凭证过期或端点被下线,还可能是证据不足以判断。这是五种完全不同的事实,需要不同的重试策略、告警与状态迁移,但大量生产系统把它们折叠成一个值:只要 result is None,就把 source.done 置为 True。作者指出这首先是控制流问题而不是日志问题:一旦允许 None 驱动状态迁移,缺失、失败与不确定就被抹平,一次临时故障能让监控永久停止,一次解析器回归看起来像安静的订阅源,过期的凭证则会对一个完全健康的端点无限重试。