UNPKG

@sotatech/nest-quickfix

Version:

A powerful NestJS implementation of the FIX (Financial Information eXchange) protocol. Provides high-performance, reliable messaging for financial trading applications with built-in session management, message validation, and recovery mechanisms.

57 lines (56 loc) 1.66 kB
import { Message } from '../../message/message'; import { EventEmitter } from 'events'; import { SessionManager } from '../../session/session.manager'; export interface MessageQueueConfig { maxBatchSize?: number; processInterval?: number; maxRetries?: number; retryDelay?: number; maxMessagesPerSecond?: number; } interface QueueMessage extends Message { retryCount?: number; } export declare class MessageQueue extends EventEmitter { private readonly sessionManager?; private queue; private processing; private readonly maxBatchSize; private readonly processInterval; private maxRetries; private retryDelay; private paused; private readonly maxMessagesPerSecond; private messageCount; private lastResetTime; private queueMetrics; private session; constructor(config?: MessageQueueConfig, sessionManager?: SessionManager); enqueue(message: QueueMessage, priority?: number): void; private calculatePriority; private startProcessing; private processBatch; private sendBatch; private processMessage; private handleSendError; private handleFailedMessage; private emitQueueStatus; private emitProcessingError; private updateMetrics; pause(): void; resume(): void; shutdown(): Promise<void>; getMetrics(): { currentQueueSize: number; isProcessing: boolean; isPaused: boolean; processedCount: number; errorCount: number; avgProcessingTime: number; }; private getQueueSize; private validateMessage; private sendToSession; private getSession; } export {};