UNPKG

queue-manager-pro

Version:

A flexible, TypeScript-first queue/task manager with pluggable backends ,dynamic persistence storage and event hooks.

20 lines (19 loc) 1.14 kB
import type { EmitMethod, HandlerMap, LoggerLike, Task } from '../types/index.js'; import type { QueueRepository } from './repository.interface.js'; export declare abstract class BaseQueueRepository implements QueueRepository { logger?: LoggerLike; emitEvent?: EmitMethod; MAX_RETRIES: number; MAX_PROCESSING_TIME: number; readonly id: string; protected dequeueLock: boolean; constructor(maxRetries: number, maxProcessingTime: number); abstract loadTasks(status?: Task<HandlerMap>['status']): Promise<Task<HandlerMap>[]>; abstract saveTasks(tasks: Task<HandlerMap>[], status?: Task<HandlerMap>['status']): Promise<Task<HandlerMap>[]>; abstract enqueue(task: Task<HandlerMap>): Promise<void>; abstract deleteTask(id: string, hardDelete?: boolean): Promise<Task<HandlerMap> | undefined>; updateTask(id: string, obj: Partial<Task<HandlerMap>>): Promise<Task<HandlerMap> | undefined>; sortTasksToDequeue(taskA: Task<HandlerMap>, taskB: Task<HandlerMap>): number; dequeue(): Promise<Task<HandlerMap> | null>; protected checkAndHandleStuckTasks(tasks: Task<HandlerMap>[]): Promise<void>; }