Runner: Dev-Server bei Bedarf
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
4fffd8b218
commit
5b902519a9
4 files changed
+357
-9
No files matched your search
+8
-3
@@ -2,14 +2,19 @@ import { loadConfig } from './config.js';
|
||||
import { createApiServer } from './server.js';
|
||||
import { createDocker } from './docker.js';
|
||||
import { createJobs } from './jobs.js';
|
||||
import { createDev } from './dev.js';
|
||||
|
||||
// Jobs/Dev/Proxy kommen in späteren Tasks; bis dahin nur Stubs, damit /status antwortet.
|
||||
// Proxy kommt in einem späteren Task.
|
||||
const config = loadConfig(process.env);
|
||||
const realJobs = createJobs({ config, docker: createDocker() });
|
||||
const docker = createDocker();
|
||||
const realJobs = createJobs({ config, docker });
|
||||
// Die API antwortet auf POST /jobs/build mit { runId }.
|
||||
const jobs = { submit: (job) => ({ runId: realJobs.submit(job) }), get: realJobs.get, queueLength: realJobs.queueLength };
|
||||
setInterval(() => realJobs.pruneCache().catch((e) => console.error('pruneCache', e)), 24 * 3600e3).unref();
|
||||
const dev = { ensure: async () => { throw Object.assign(new Error('Noch nicht verfügbar'), { status: 503 }); }, stop: async () => {}, list: () => [] };
|
||||
const dev = createDev({ config, docker, jobs: realJobs });
|
||||
// Zustand der Dev-Server liegt nur im Speicher: Überbleibsel entfernen, dann jede Minute Leerlauf prüfen.
|
||||
dev.cleanupOrphans().catch((e) => console.error('cleanupOrphans', e));
|
||||
setInterval(() => dev.sweep().catch((e) => console.error('sweep', e)), 60e3).unref();
|
||||
|
||||
createApiServer({ config, jobs, dev }).listen(config.apiPort, () => {
|
||||
console.log(`Preview-Runner API auf Port ${config.apiPort}`);
|
||||
|
||||
Reference in new issue
Block a user