knock-mq
Version:
Production-grade message queue implementation.
37 lines • 1.22 kB
TypeScript
import type { QueueConfig, QueueItem, QueueStatus, QueuePriority } from './queue.js';
import type { ExtendedQueueStorage } from './storage.js';
export declare class QueueInstance<T = unknown> {
private readonly config;
private queue;
private processor?;
private running;
private pollInterval;
constructor(config: Omit<QueueConfig<T>, 'storage'> & {
storage: ExtendedQueueStorage<T>;
});
useProcessor(fn: (item: QueueItem<T>) => Promise<{
success: boolean;
}>): void;
enqueue(data: T, opts?: {
id?: string;
priority?: QueuePriority;
}): Promise<string>;
enqueueOnce(id: string, data: T, opts?: {
priority?: QueuePriority;
expiresAt?: Date;
}): Promise<boolean>;
getDeadLetters(limit?: number): Promise<QueueItem<T>[]>;
pause(): Promise<void>;
resume(): Promise<void>;
isPaused(): Promise<boolean>;
start(): Promise<void>;
stop(): void;
getStats(): Promise<{
totalProcessed: number;
totalErrors: number;
averageProcessingTime: number;
currentlyProcessing: number;
}>;
getStatus(id: string): Promise<QueueStatus | null>;
}
//# sourceMappingURL=api.d.ts.map