knock-mq
Version:
Production-grade message queue implementation.
34 lines • 1.73 kB
TypeScript
import type { QueueItem, QueuePriority, QueueStatus } from './queue.js';
export interface ExtendedQueueStorage<T = unknown> {
enqueue(item: QueueItem<T>): Promise<void>;
enqueueOnce(id: string, data: T, opts?: Partial<QueueItem<T>>): Promise<boolean>;
updateStatus(id: string, status: QueueStatus): Promise<void>;
complete(id: string, success: boolean): Promise<void>;
moveToDeadLetter(id: string, reason: string): Promise<void>;
getProcessingCounts(): Promise<Record<QueuePriority, number>>;
findStuckProcessing(since: Date): Promise<QueueItem<T>[]>;
dequeue(limit: number): Promise<QueueItem<T>[]>;
getDeadLetterItems(limit: number): Promise<QueueItem<T>[]>;
getItem(id: string): Promise<QueueItem<T> | null>;
isPaused(): Promise<boolean>;
pause(): Promise<void>;
resume(): Promise<void>;
}
export declare class InMemoryStorage<T = unknown> implements ExtendedQueueStorage<T> {
private items;
private paused;
enqueue(item: QueueItem<T>): Promise<void>;
enqueueOnce(id: string, data: T, opts?: Partial<QueueItem<T>>): Promise<boolean>;
updateStatus(id: string, status: QueueStatus): Promise<void>;
complete(id: string, _success: boolean): Promise<void>;
moveToDeadLetter(id: string, reason: string): Promise<void>;
getProcessingCounts(): Promise<Record<QueuePriority, number>>;
findStuckProcessing(since: Date): Promise<QueueItem<T>[]>;
dequeue(limit: number): Promise<QueueItem<T>[]>;
getDeadLetterItems(limit: number): Promise<QueueItem<T>[]>;
getItem(id: string): Promise<QueueItem<T> | null>;
isPaused(): Promise<boolean>;
pause(): Promise<void>;
resume(): Promise<void>;
}
//# sourceMappingURL=storage.d.ts.map