UNPKG

nodejs-cloud-taskmq

Version:

Node.js TypeScript library for integrating Google Cloud Tasks with MongoDB/Redis/Memory/Custom for a BullMQ-like queue system. Compatible with NestJS but framework-agnostic.

61 lines (60 loc) 2.04 kB
import { IStateStorageAdapter, ITask, TaskStatus, TaskQueryOptions } from '../interfaces/storage-adapter.interface'; /** * Redis storage adapter options */ export interface RedisStorageOptions { host?: string; port?: number; password?: string; url?: string; keyPrefix?: string; options?: any; } /** * Redis storage adapter */ export declare class RedisStorageAdapter implements IStateStorageAdapter { private options; private redis; private keyPrefix; constructor(options: RedisStorageOptions); initialize(): Promise<void>; private getTaskKey; private getUniquenessKey; private getRateLimitKey; private getQueueKey; private getChainKey; saveTask(task: ITask): Promise<void>; private deserializeTask; getTask(taskId: string): Promise<ITask | null>; updateTaskStatus(taskId: string, status: TaskStatus, updateData?: Partial<ITask>): Promise<void>; deleteTask(taskId: string): Promise<boolean>; createTask(task: ITask): Promise<ITask>; getTasks(options?: TaskQueryOptions): Promise<ITask[]>; getTaskCount(options?: TaskQueryOptions): Promise<number>; isUniquenessKeyActive(key: string): Promise<boolean>; setUniquenessKeyActive(key: string, taskId: string, ttlSeconds?: number): Promise<void>; removeUniquenessKey(key: string): Promise<void>; getRateLimit(key: string): Promise<{ count: number; resetTime: Date; } | null>; incrementRateLimit(key: string, windowMs: number, maxRequests: number): Promise<{ allowed: boolean; count: number; resetTime: Date; }>; hasActiveTaskInChain(chainId: string): Promise<boolean>; getNextChainIndex(chainId: string): Promise<number>; cleanup(options?: { olderThan?: Date; statuses?: TaskStatus[]; removeCompleted?: boolean; removeFailed?: boolean; }): Promise<number>; close(): Promise<void>; /** * Clear all tasks - for testing purposes only */ private clearAllTasks; }