UNPKG

@pulzar/core

Version:

Next-generation Node.js framework for ultra-fast web applications with zero-reflection DI, GraphQL, WebSockets, events, and edge runtime support

91 lines 2.15 kB
import { DeadLetterQueue, DLQEntry, DLQFilter, DLQStats, EventEnvelope } from "../types"; interface RedisConfig { host?: string; port?: number; password?: string; db?: number; keyPrefix?: string; maxRetriesPerEntry?: number; defaultTTL?: number; maxSize?: number; retryStrategy?: "exponential" | "linear" | "fixed"; baseRetryDelay?: number; } export declare class RedisDLQ implements DeadLetterQueue { private redis; private config; private connected; constructor(config?: RedisConfig); /** * Initialize Redis connection */ connect(): Promise<void>; /** * Disconnect from Redis */ disconnect(): Promise<void>; /** * Add failed event to DLQ */ add(event: EventEnvelope, error: Error, originalSubject: string): Promise<void>; /** * List DLQ entries with pagination */ list(limit?: number, offset?: number): Promise<DLQEntry[]>; /** * Get specific DLQ entry */ get(id: string): Promise<DLQEntry | null>; /** * Retry specific DLQ entry */ retry(id: string): Promise<void>; /** * Retry all entries matching filter */ retryAll(filter?: DLQFilter): Promise<number>; /** * Remove DLQ entry */ remove(id: string): Promise<void>; /** * Clear all DLQ entries */ clear(): Promise<void>; /** * Get DLQ statistics */ getStats(): Promise<DLQStats>; /** * Calculate next retry time based on strategy */ private calculateNextRetry; /** * Check if entry matches filter */ private matchesFilter; /** * Serialize DLQ entry for Redis storage */ private serializeEntry; /** * Deserialize DLQ entry from Redis */ private deserializeEntry; /** * Generate Redis keys */ private getQueueKey; private getEntryKey; private getStatsKey; /** * Try to import Redis package */ private importRedis; /** * Generate unique ID */ private generateId; } export default RedisDLQ; //# sourceMappingURL=redis-dlq.d.ts.map