From b6be8b45933258a3d2ea423fbfee6bd68e7440c0 Mon Sep 17 00:00:00 2001 From: Nelson <1475262689@qq.com> Date: Tue, 23 Jun 2026 13:10:26 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B0=83=E6=95=B4PDF=E7=AD=89=E5=BE=85?= =?UTF-8?q?=E6=8F=90=E7=A4=BA=E6=96=87=E6=A1=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/app/services/pdf.py | 2 +- docs/usage-deployment-manual.md | 2 +- frontend/src/views/AdminCertificates.vue | 2 +- frontend/src/views/CertificateQuery.vue | 4 ++-- frontend/src/views/CertificateView.vue | 2 +- 5 files changed, 6 insertions(+), 6 deletions(-) diff --git a/backend/app/services/pdf.py b/backend/app/services/pdf.py index 078d507..fe431f8 100644 --- a/backend/app/services/pdf.py +++ b/backend/app/services/pdf.py @@ -30,7 +30,7 @@ class PdfGenerationLimiter: while self._active >= limit: remaining = deadline - monotonic() if remaining <= 0: - raise PdfGenerationBusy("当前PDF生成任务较多,请稍后重试") + raise PdfGenerationBusy("当前查询人数较多,请稍后重试") self._condition.wait(remaining) self._active += 1 diff --git a/docs/usage-deployment-manual.md b/docs/usage-deployment-manual.md index d68ce8a..dc911db 100644 --- a/docs/usage-deployment-manual.md +++ b/docs/usage-deployment-manual.md @@ -63,7 +63,7 @@ PDF 由服务端按需生成,并使用 30 天缓存。这样可以保证模板 后台 PDF 下载不能用简单的 `window.location` 直接跳转,因为后台接口需要登录态。如果直接打开下载地址,浏览器不会自动带上前端保存的 Authorization token,容易出现下载失败。当前后台已改为通过带 token 的请求下载 blob 文件,再在浏览器里保存。 -首次生成 PDF 会占用 CPU。后台“系统设置”里的 `PDF 生成并发限制` 默认是 `2`,用于防止多人同时首次下载 PDF 时把 2 核 4G 服务器打满。前端下载和预览时会显示“PDF正在排队或生成”,避免用户误以为页面卡死。 +首次生成 PDF 会占用 CPU。后台“系统设置”里的 `PDF 生成并发限制` 默认是 `2`,用于防止多人同时首次下载 PDF 时把 2 核 4G 服务器打满。前端下载和预览时会显示“当前查询人数较多,请稍后。。。”,避免用户误以为页面卡死。 ## 正式部署准备 diff --git a/frontend/src/views/AdminCertificates.vue b/frontend/src/views/AdminCertificates.vue index 0c26a91..fcb2fa8 100644 --- a/frontend/src/views/AdminCertificates.vue +++ b/frontend/src/views/AdminCertificates.vue @@ -163,7 +163,7 @@ async function downloadCertificate(row: AdminCertificate) { downloadingCertificateId.value = row.id; const loading = ElLoading.service({ lock: true, - text: "PDF正在排队或生成,请稍候...", + text: "当前查询人数较多,请稍后。。。", background: "rgba(255, 255, 255, 0.72)", }); try { diff --git a/frontend/src/views/CertificateQuery.vue b/frontend/src/views/CertificateQuery.vue index 619dbdc..869d44b 100644 --- a/frontend/src/views/CertificateQuery.vue +++ b/frontend/src/views/CertificateQuery.vue @@ -120,7 +120,7 @@
PDF正在排队或生成,请稍候...
+当前查询人数较多,请稍后。。。
Training Completion Certificate
@@ -340,7 +340,7 @@ async function downloadPdf(item: PublicCertificate) { downloadingCertificateNo.value = item.certificate_no; const loading = ElLoading.service({ lock: true, - text: "PDF正在排队或生成,请稍候...", + text: "当前查询人数较多,请稍后。。。", background: "rgba(255, 255, 255, 0.72)", }); try { diff --git a/frontend/src/views/CertificateView.vue b/frontend/src/views/CertificateView.vue index de523f6..749d1ca 100644 --- a/frontend/src/views/CertificateView.vue +++ b/frontend/src/views/CertificateView.vue @@ -70,7 +70,7 @@ async function downloadPdf() { downloading.value = true; const loading = ElLoading.service({ lock: true, - text: "PDF正在排队或生成,请稍候...", + text: "当前查询人数较多,请稍后。。。", background: "rgba(255, 255, 255, 0.72)", }); try {