@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
TypeScript
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 {};