feat(jobs)!: SnapOtter 2.0 phase 2 job spine: async queues, worker pools, object storage, admin dashboard (#217)

This commit is contained in:
SnapOtter
2026-06-13 10:17:13 +08:00
parent 1c724d5d21
commit c451b939c7
130 changed files with 10438 additions and 3592 deletions
+11
View File
@@ -15,6 +15,17 @@ const baseUrl = process.env.TEST_PG_BASE_URL;
if (!baseUrl) {
throw new Error("TEST_PG_BASE_URL missing; tests/global-setup.ts did not run");
}
const redisBaseUrl = process.env.TEST_REDIS_BASE_URL;
if (!redisBaseUrl) {
throw new Error("TEST_REDIS_BASE_URL missing; tests/global-setup.ts did not run");
}
process.env.REDIS_URL = redisBaseUrl;
process.env.BULLMQ_PREFIX = `snapotter_test_${suffix}`;
// Heavy format conversions can exceed the 8s production default under parallel
// test forks; 30s keeps tool routes synchronous (200) in tests while production stays at 8s.
process.env.SYNC_WAIT_MS = "30000";
const dbName = `snapotter_test_${suffix}`; // pid digits + uuid hex: identifier-safe
const admin = new pg.Client({ connectionString: baseUrl });
await admin.connect();