#73 临考突击报告复用 PDF 渲染页面

Fuzionată
jyx a fuzionat 2 commits de la jyx/feat/PDF页面复用 în jyx/master 6 zile în urmă

主要改动

  • 为临考突击报告 PDF 配置新增 pageReuseEnabledpageMaxRenderCount,默认启用 Page 复用并在 200 次渲染后重建。
  • 调整 DefaultPlaywrightPdfWorker,支持在每个 worker 内复用 BrowserContext + Page,减少重复创建页面的固定开销。
  • 增加复用页面的自愈机制:PDF 生成异常后重建复用页面,达到最大渲染次数后周期性重建。
  • 增加 Page 复用状态日志,输出 pageReuseEnabledpageReusedpageRenderCountpageMaxRenderCount
  • 补充 PDF Page 复用、周期性重建和 runtime 配置复制测试。

影响范围

  • 影响临考突击报告 PDF 渲染 worker 的资源复用方式。
  • poolSize 未调整,PDF 并发度保持不变。
  • 默认启用 Page 复用;如需回退旧行为,可通过配置关闭 pageReuseEnabled
  • 调整了一个 runtime 测试断言,不再依赖嵌套 @Import 下的具体 bean 名,仅验证按类型注册成功。

验证结果

  • 已运行: PATH="/opt/homebrew/bin:$PATH" mvn -pl ability-center-runtime,abilities/exam-sprint/application,abilities/exam-sprint/infrastructure -am test
  • 结果:
    • Tests run: 104, Failures: 0, Errors: 0, Skipped: 0
    • Tests run: 29, Failures: 0, Errors: 0, Skipped: 0
  • Maven 构建结果: BUILD SUCCESS

风险 / 注意事项

  • Page 复用会引入页面状态复用风险;本次已增加失败重建和最大渲染次数重建机制,并保留 pageReuseEnabled=false 作为配置回退路径。
  • 上线后建议关注 PDF 日志中的 pageReusedpageRenderCountreason=max_render_countreason=failure,确认复用和重建符合预期。
  • 推送后工作区仍存在未提交部署配置改动,未纳入本次提交:
    • deploy/ability-center/docker-compose.yml
    • deploy/ability-center/runtime/dockerfile
## 主要改动 - 为临考突击报告 PDF 配置新增 `pageReuseEnabled` 和 `pageMaxRenderCount`,默认启用 Page 复用并在 200 次渲染后重建。 - 调整 `DefaultPlaywrightPdfWorker`,支持在每个 worker 内复用 `BrowserContext + Page`,减少重复创建页面的固定开销。 - 增加复用页面的自愈机制:PDF 生成异常后重建复用页面,达到最大渲染次数后周期性重建。 - 增加 Page 复用状态日志,输出 `pageReuseEnabled`、`pageReused`、`pageRenderCount` 和 `pageMaxRenderCount`。 - 补充 PDF Page 复用、周期性重建和 runtime 配置复制测试。 ## 影响范围 - 影响临考突击报告 PDF 渲染 worker 的资源复用方式。 - `poolSize` 未调整,PDF 并发度保持不变。 - 默认启用 Page 复用;如需回退旧行为,可通过配置关闭 `pageReuseEnabled`。 - 调整了一个 runtime 测试断言,不再依赖嵌套 `@Import` 下的具体 bean 名,仅验证按类型注册成功。 ## 验证结果 - 已运行: `PATH="/opt/homebrew/bin:$PATH" mvn -pl ability-center-runtime,abilities/exam-sprint/application,abilities/exam-sprint/infrastructure -am test` - 结果: - `Tests run: 104, Failures: 0, Errors: 0, Skipped: 0` - `Tests run: 29, Failures: 0, Errors: 0, Skipped: 0` - Maven 构建结果: `BUILD SUCCESS` ## 风险 / 注意事项 - Page 复用会引入页面状态复用风险;本次已增加失败重建和最大渲染次数重建机制,并保留 `pageReuseEnabled=false` 作为配置回退路径。 - 上线后建议关注 PDF 日志中的 `pageReused`、`pageRenderCount`、`reason=max_render_count` 和 `reason=failure`,确认复用和重建符合预期。 - 推送后工作区仍存在未提交部署配置改动,未纳入本次提交: - `deploy/ability-center/docker-compose.yml` - `deploy/ability-center/runtime/dockerfile`
Acest pull request a fost fuzionat cu succes!
Autentificați-vă pentru a vă alătura acestei conversații.
Fără etichetă
Nu există Milestone
Fără destinatar
1 Participanți
Se încarcă...
Anulare
Salvează
Nu există încă niciun conținut.