GitHub Webhook + 缓存更新
内容从 GitHub API 获取内容,接口有 rate limit 必须缓存,但是内容会更新,缓存又不能一直不变
缓存管理
在项目里,我们把缓存放在内容服务里,而不是页面或 API 层。
比如在内容服务 getLessonContent 加载内容后使用 unstable_cache 长期缓存,因为大部分内容长期不变
内容更新
当内容仓库发生更新时,利用 GitHub webhook 更新内容,整体流程如下:
- 内容仓库发生
push - GitHub 触发 Webhook
- Webhook 调用
/courses/api/webhooks/github/content-revalidate - 服务端根据变更文件列表执行:
revalidateTag:更新内容缓存revalidatePath:刷新对应的 SSG 页面