Expand description
内容变更与启动后清除 EdgeOne 节点上缓存的公开页 HTML。 内容变更后清除 EdgeOne 节点上缓存的公开页 HTML。
白名单匿名页带 s-maxage(SsrCacheSettings::edge_ttl_secs)时,CDN 节点会缓存 HTML;
源站 HTML 缓存每次失效(文章、标签、设置写入,跨实例通知,发版启动)都经
request_purge 发信号,本任务:
- 防抖
DEBOUNCE:一次写入会连续触发多次失效,批量操作更多,合并成一次; - 立刻清一次,
SECOND_PASS_DELAY后再清一次:写入前已开始渲染的请求可能在第一次清除 之后才返回旧页面,EdgeOne 会把它按s-maxage缓存下来(源站缓存有世代号挡住,边缘没有); - 失败按
RETRY_DELAYS重试,最终失败记 error,陈旧上限退回到s-maxage。
清除范围是 ssr_cache 的白名单:前缀按目录清除,固定页面按 URL 清除。不用 Hostname 或
全站清除,否则会连带 /pkg/ 与静态资源,节点重新回源时可能缓存 EdgeOne 自己压缩的
更大的 br(见 docs/首屏性能实测-2026-10-28.md)。
启动时路由装配会使源站缓存失效,所以每次发版或重启都会清一次:边缘不会留下引用已删除
/pkg/ 分包的旧 HTML(YGG_PREVIOUS_PUBLIC_DIR 只保留上一版)。
凭据只读环境变量(EDGEONE_ZONE_ID、TENCENTCLOUD_SECRET_ID、TENCENTCLOUD_SECRET_KEY),
缺任一项时任务不启动,信号只是空操作。建议用只授权该站点 teo:CreatePurgeTask 的 CAM 子账号。
Structs§
- Credentials 🔒
- Purge
Targets 🔒 - 一轮清除的目标:目录(
purge_prefix)与固定页面(purge_url)。
Constants§
- API_
ACTION 🔒 - API_
HOST 🔒 - API_
SERVICE 🔒 - API_
VERSION 🔒 - CONTENT_
TYPE 🔒 - 与腾讯云 SDK 一致:签名头只有
content-type;host,内容类型不带 charset。 - DEBOUNCE 🔒
- RETRY_
DELAYS 🔒 - SECOND_
PASS_ 🔒DELAY - 实测 EdgeOne 完成一次目录或 URL 清除要 9–20 秒(2026-11-10)。第二轮要落在第一轮完成之后, 才能清掉第一轮进行期间节点从源站拉回的旧页面。
Statics§
- SIGNAL 🔒
Functions§
- authorization 🔒
- TC3-HMAC-SHA256 签名,构造方式与腾讯云 Python SDK(
_get_tc3_signature)一致。 - create_
purge_ 🔒task - hmac_
sha256 🔒 - HMAC-SHA256(RFC 2104)。只此一处用到,不为它引入
hmaccrate。 - is_
configured - 是否配置了清边缘缓存的凭据(启动日志用)。
- parse_
response 🔒 - 解析云 API 响应:
Response.Error或非空FailedList视为失败,成功返回JobId。 - purge_
with_ 🔒retry - request_
purge - 请求清除边缘 HTML 缓存。只发信号,立即返回;未配置凭据时没有任务在等,信号被忽略。
- run
- 常驻任务:等待信号,防抖后清两次。