UNPKG

polyv-live-cli

Version:

CLI tool for managing PolyV live streaming services.

90 lines 2.6 kB
import { EventEmitter } from 'events'; export interface BatchRequestConfig { maxBatchSize: number; maxWaitTime: number; minBatchInterval: number; enableIntelligentBatching: boolean; maxConcurrentBatches: number; retryAttempts: number; retryDelay: number; } export interface BatchRequestItem { id: string; method: string; url: string; params: Record<string, any>; body?: any; headers?: Record<string, string>; priority: 'low' | 'medium' | 'high'; timestamp: number; resolve: (value: any) => void; reject: (error: any) => void; timeout?: number; } export interface BatchResult { batchId: string; requestCount: number; successCount: number; failureCount: number; processingTime: number; results: Array<{ requestId: string; success: boolean; data?: any; error?: any; responseTime: number; }>; } export interface BatchStats { totalBatches: number; totalRequests: number; averageBatchSize: number; averageProcessingTime: number; successRate: number; requestsPerSecond: number; pendingRequests: number; activeBatches: number; } export declare class BatchRequestManager extends EventEmitter { private config; private pendingRequests; private activeBatches; private batchTimers; private stats; private requestIdCounter; private batchIdCounter; private isRunning; private periodicProcessTimer?; constructor(config?: Partial<BatchRequestConfig>); start(): void; stop(): void; addRequest(method: string, url: string, params?: Record<string, any>, body?: any, options?: { priority?: 'low' | 'medium' | 'high'; headers?: Record<string, string>; timeout?: number; }): Promise<any>; getStats(): BatchStats; getPendingRequests(): Array<{ id: string; method: string; url: string; priority: string; timestamp: number; }>; flushPendingRequests(): Promise<void>; updateConfig(newConfig: Partial<BatchRequestConfig>): void; resetStats(): void; private generateRequestId; private generateBatchId; private checkBatchProcessingConditions; private scheduleImmediateBatchProcessing; private setupPeriodicBatchProcessing; private processNextBatch; private selectRequestsForBatch; private selectIntelligentBatch; private processBatch; private executeBatch; private executeIndividualRequest; private updateBatchStats; } //# sourceMappingURL=batch-request-manager.d.ts.map