fix(pipeline): indexing jobs never started due to missing queue.enqueue() calls

All three trigger-indexing routes were calling service.createIndexingJob()
directly which only inserts the DB record but never calls processNext().
Fixed to route through getQueue().enqueue() so the job queue actually
picks up and runs the job immediately.

Affected routes:
- POST /api/v1/libs (autoIndex on add)
- POST /api/v1/libs/:id/index
- POST /api/v1/libs/:id/versions/:tag/index

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Giancarmine Salucci
2026-03-23 09:33:36 +01:00
parent 391eb7f411
commit 06053152d2
3 changed files with 17 additions and 3 deletions

View File

@@ -5,6 +5,7 @@ import { json } from '@sveltejs/kit';
import type { RequestHandler } from './$types';
import { getClient } from '$lib/server/db/client';
import { RepositoryService } from '$lib/server/services/repository.service';
import { getQueue } from '$lib/server/pipeline/startup';
import { handleServiceError, NotFoundError } from '$lib/server/utils/validation';
export const POST: RequestHandler = async ({ params, request }) => {
@@ -23,7 +24,12 @@ export const POST: RequestHandler = async ({ params, request }) => {
// body is optional
}
const job = service.createIndexingJob(id, versionId);
// Use the queue so processNext() is triggered immediately.
// Falls back to direct DB insert if the queue isn't initialised yet.
const queue = getQueue();
const job = queue
? queue.enqueue(id, versionId)
: service.createIndexingJob(id, versionId);
return json({ job }, { status: 202 });
} catch (err) {

View File

@@ -7,6 +7,7 @@ import type { RequestHandler } from './$types';
import { getClient } from '$lib/server/db/client';
import { RepositoryService } from '$lib/server/services/repository.service';
import { VersionService } from '$lib/server/services/version.service';
import { getQueue } from '$lib/server/pipeline/startup';
import { handleServiceError, NotFoundError } from '$lib/server/utils/validation';
function getServices() {
@@ -37,7 +38,10 @@ export const POST: RequestHandler = ({ params }) => {
throw new NotFoundError(`Version ${tag} not found for repository ${repositoryId}`);
}
const job = repoService.createIndexingJob(repositoryId, version.id);
const queue = getQueue();
const job = queue
? queue.enqueue(repositoryId, version.id)
: repoService.createIndexingJob(repositoryId, version.id);
return json({ job }, { status: 202 });
} catch (err) {
return handleServiceError(err);