GitHub Webhook + 缓存更新

内容从 GitHub API 获取内容,接口有 rate limit 必须缓存,但是内容会更新,缓存又不能一直不变

缓存管理

在项目里,我们把缓存放在内容服务里,而不是页面或 API 层。

比如在内容服务 getLessonContent 加载内容后使用 unstable_cache 长期缓存,因为大部分内容长期不变

内容更新

当内容仓库发生更新时,利用 GitHub webhook 更新内容,整体流程如下:

  1. 内容仓库发生 push
  2. GitHub 触发 Webhook
  3. Webhook 调用 /courses/api/webhooks/github/content-revalidate
  4. 服务端根据变更文件列表执行:
    • revalidateTag:更新内容缓存
    • revalidatePath:刷新对应的 SSG 页面

登录后查看完整方案说明

当前仅展示《GitHub Webhook + 缓存更新》的部分内容。页面加载时会自动弹出登录框,若你刚刚关闭了它,点击下面按钮可继续查看完整说明。