Skip to main content
Glama
file-ingestion-queue.ts1.25 kB
import { Job, JobOptions, Queue } from 'bull'; import { JobType } from '../types/index.js'; import { QueueManager } from './queue-manager.js'; import { FileIngestionJobPayload, validateFileIngestionPayload, } from './file-ingestion-queue.schema.js'; export class FileIngestionQueue { private readonly queueManager: QueueManager; private readonly queue: Queue<FileIngestionJobPayload>; private readonly queueName: string; constructor(queueManager: QueueManager) { this.queueManager = queueManager; const { queues: { fileIngestion }, } = queueManager.getConfig(); this.queueName = fileIngestion; const q = queueManager.getQueue(fileIngestion) as | Queue<FileIngestionJobPayload> | undefined; if (!q) { throw new Error( `FileIngestionQueue: queue "${fileIngestion}" not registered` ); } this.queue = q; } async addFileIngestionJob( payload: unknown, options?: JobOptions ): Promise<Job> { const validatedPayload = validateFileIngestionPayload(payload); return await this.queueManager.addJob( this.queueName, JobType.FILE_INGESTION, validatedPayload, options ); } getQueue(): Queue { return this.queue; } }

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/KasarLabs/snak'

If you have feedback or need assistance with the MCP directory API, please join our Discord server