Basis: Certvia dev@a48c5fb als Fundament für Craftvia
Unveränderter Stand von certvia/dev (a48c5fb) plus Craftvia-Spezifikation und Brandbook unter docs/craftvia/. ISMS-Module werden im Folgecommit entfernt. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,41 @@
|
||||
import "dotenv/config";
|
||||
import { isBackupQueueEnabled } from "../src/server/backup/queue";
|
||||
import { startBackupWorker, shutdownBackupWorker } from "../src/server/backup/worker";
|
||||
|
||||
/**
|
||||
* Einstiegspunkt des Backup-/DSGVO-Ops-Workers (`npm run worker:backup`).
|
||||
*
|
||||
* Eigener Prozess/Container neben der App (analog Mail-Worker), damit der
|
||||
* destruktive Portal-Restore, „Export jetzt" und die DSGVO-Zustellung unabhängig
|
||||
* vom Web-Request-Lebenszyklus laufen (Timeouts/Progress/Audit). Ohne `REDIS_URL`
|
||||
* gibt es keinen Worker-Betrieb — die Enqueue-Action meldet das und führt NICHTS
|
||||
* inline aus (Restore ist destruktiv, KONZEPT §4).
|
||||
*/
|
||||
async function main() {
|
||||
if (!isBackupQueueEnabled()) {
|
||||
console.error(
|
||||
"[backup-worker] REDIS_URL ist nicht gesetzt. Ohne Redis gibt es keinen Backup-Worker; " +
|
||||
"Portal-Restore/Export/DSGVO können nicht ausgeführt werden.",
|
||||
);
|
||||
process.exit(1);
|
||||
}
|
||||
|
||||
const worker = startBackupWorker();
|
||||
console.info("[backup-worker] bereit — Queue 'backup-ops' (Restore/Export/DSGVO, seriell).");
|
||||
|
||||
let shuttingDown = false;
|
||||
const stop = async (signal: string) => {
|
||||
if (shuttingDown) return;
|
||||
shuttingDown = true;
|
||||
console.info(`[backup-worker] ${signal} — fahre herunter…`);
|
||||
await shutdownBackupWorker(worker);
|
||||
process.exit(0);
|
||||
};
|
||||
process.on("SIGTERM", () => void stop("SIGTERM"));
|
||||
process.on("SIGINT", () => void stop("SIGINT"));
|
||||
}
|
||||
|
||||
main().catch((err) => {
|
||||
console.error("[backup-worker] Start fehlgeschlagen:", err);
|
||||
process.exit(1);
|
||||
});
|
||||
Reference in New Issue
Block a user