Génération PDF asynchrone : jobs avec polling + progression
All checks were successful
Deploy / deploy (push) Successful in 20s

- Nouveau système de jobs : POST /jobs (async), GET /jobs/{id} (status), GET /jobs/{id}/result (PDF), DELETE /jobs/{id}
- worker.php spawné en arrière-plan via nohup, lit la sortie pagedjs-cli ligne par ligne via proc_open et écrit la progression dans tmp/job_{id}.status.json
- Migration de pagedjs-cli en install local (node_modules) pour persister le patch protocolTimeout via patch-package
- CI : déploie package.json, worker.php, patches/, et lance npm install (qui réapplique les patches via postinstall)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
isUnknown 2026-05-04 09:37:00 +02:00
parent a005c982bd
commit 0b954ed494
10 changed files with 506 additions and 6 deletions

View file

@ -0,0 +1,14 @@
diff --git a/node_modules/pagedjs-cli/src/printer.js b/node_modules/pagedjs-cli/src/printer.js
index 206b4fc..e9d296b 100644
--- a/node_modules/pagedjs-cli/src/printer.js
+++ b/node_modules/pagedjs-cli/src/printer.js
@@ -48,7 +48,8 @@ class Printer extends EventEmitter {
let puppeteerOptions = {
headless: this.headless,
args: ["--disable-dev-shm-usage", "--export-tagged-pdf"],
- ignoreHTTPSErrors: this.ignoreHTTPSErrors
+ ignoreHTTPSErrors: this.ignoreHTTPSErrors,
+ protocolTimeout: 300000
};
if (this.allowLocal) {