queue-manager-pro
Version:
A flexible, TypeScript-first queue/task manager with pluggable backends ,dynamic persistence storage and event hooks.
22 lines (21 loc) • 1.19 kB
TypeScript
import type { HandlerMap, QueueBackendConfig, Task } from '../types/index.js';
import { BaseQueueRepository } from './base.repository.js';
import type { Redis } from 'ioredis';
import type { QueueRepository } from '../index.js';
export declare class RedisQueueRepository extends BaseQueueRepository implements QueueRepository {
private readonly redis;
storageName: string;
private dequeueLockName;
constructor(redisClient: Redis, maxRetries: number, maxProcessingTime: number, options?: Extract<QueueBackendConfig, {
type: 'redis';
}>['options']);
setDequeueLockName(name: string): Promise<void>;
loadTasks(status?: Task<HandlerMap>['status']): Promise<Task<HandlerMap>[]>;
saveTasks(_tasks: Task<HandlerMap>[], _status?: Task<HandlerMap>['status']): Promise<Task<HandlerMap>[]>;
deleteTask(id: string, hardDelete?: boolean): Promise<Task<HandlerMap> | undefined>;
getScore(task: Task<HandlerMap>): number;
enqueue(task: Task<HandlerMap>): Promise<void>;
updateTask(id: string, obj: Partial<Task<HandlerMap>>): Promise<Task<HandlerMap> | undefined>;
private ATOMIC_DEQUEUE_LUA;
dequeue(): Promise<Task<HandlerMap> | null>;
}