feat(worker): Worker mit pg-boss, Vorgaenge und Docker-Betrieb (#007)
Die Oberflaeche legt einen Vorgang an und schickt nur dessen ID in die Warteschlange; der Worker fuehrt ihn aus und haelt Status, Ergebnis oder Fehler fest. So bleiben lange SSH-Vorgaenge aus dem Webprozess heraus, und der Fortschritt ist ohne Job-Interna sichtbar. Kein automatisches Wiederholen: ein halb ausgefuehrter Schreibvorgang auf einem Host gehoert vor einen Menschen. Fehlertexte aus fremden Bibliotheken erreichen die Oberflaeche nie. Dockerfile und Compose fuer den Betrieb: Master-Key als Secret nur im Worker, Datenbank in einem internen Netz. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
+3
-2
@@ -11,7 +11,7 @@
|
||||
"scripts": {
|
||||
"dev": "next dev -p 3400",
|
||||
"build": "next build",
|
||||
"build:worker": "esbuild src/worker/index.ts --bundle --platform=node --target=node24 --format=esm --outfile=dist/worker.mjs --banner:js=\"import { createRequire } from 'node:module'; const require = createRequire(import.meta.url);\" --external:@prisma/client --external:@node-rs/argon2 --external:pg-native --external:ssh2 --external:cpu-features",
|
||||
"build:worker": "esbuild src/worker/index.ts --bundle --platform=node --target=node24 --format=esm --outfile=dist/worker.mjs --banner:js=\"$(cat deploy/worker-banner.js)\" --external:@prisma/client --external:@node-rs/argon2 --external:pg-native --external:cpu-features --external:*.node",
|
||||
"start": "next start -p 3400",
|
||||
"worker": "tsx src/worker/index.ts",
|
||||
"lint": "eslint",
|
||||
@@ -31,7 +31,8 @@
|
||||
"issues:sync": "tsx scripts/gitea-issues.ts",
|
||||
"icons": "node scripts/icons.mjs",
|
||||
"postinstall": "prisma generate",
|
||||
"prepare": "husky"
|
||||
"prepare": "husky",
|
||||
"build:all": "pnpm build && pnpm build:worker"
|
||||
},
|
||||
"lint-staged": {
|
||||
"*.{ts,tsx,mts,mjs}": [
|
||||
|
||||
Reference in New Issue
Block a user