Return queued lifecycle jobs before waking provisioning

This commit is contained in:
2026-10-06 12:56:30 -04:00
parent d2108eb604
commit dd2fe2cc7a
4 changed files with 67 additions and 6 deletions
+5 -2
View File
@@ -1,5 +1,5 @@
import { fleetSnapshot } from '$lib/server/fleet/snapshot.js';
import { kick } from '$lib/server/pipeline/worker.js';
import { kickProvisioning } from '$lib/server/pipeline/worker.js';
import { json } from '@sveltejs/kit';
import { queueCreateServer } from '$lib/server/provisioning/index.js';
import type { GameMode, ZombieGame } from '$lib/server/fleet/map-aliases.js';
@@ -37,6 +37,9 @@ export async function POST({ request }: { request: Request }) {
: 500;
return json({ ok: false, error: result.message, kind: result.kind }, { status });
}
void kick().catch((err) => console.error('[create] worker kick failed:', err));
// Return the durable job ID before the worker's synchronous admission work.
setImmediate(() => {
void kickProvisioning().catch((err) => console.error('[create] worker kick failed:', err));
});
return json({ ok: true, name: result.name, port: result.port, deploymentId: result.deploymentId }, { status: 202 });
}
+4 -2
View File
@@ -1,4 +1,4 @@
import { kick } from '$lib/server/pipeline/worker.js';
import { kickProvisioning } from '$lib/server/pipeline/worker.js';
import { json } from '@sveltejs/kit';
import { destroyServer } from '$lib/server/provisioning/index.js';
import { serverSnapshot } from '$lib/server/fleet/snapshot.js';
@@ -17,6 +17,8 @@ export async function DELETE({ params }: { params: { name: string } }) {
const status = result.kind === 'not-found' ? 404 : result.kind === 'conflict' ? 409 : 500;
return json({ ok: false, error: result.message, kind: result.kind, warnings: result.warnings }, { status });
}
void kick().catch((err) => console.error('[destroy] worker kick failed:', err));
setImmediate(() => {
void kickProvisioning().catch((err) => console.error('[destroy] worker kick failed:', err));
});
return json({ ok: true, deploymentId: result.deploymentId }, { status: 202 });
}