UNPKG

@mcpfun/mcp-server-ccxt

Version:

High-performance CCXT MCP server for cryptocurrency exchange integration

99 lines (98 loc) 3 kB
/** * Adaptive rate limiter that adjusts based on API responses * * 根据API响应进行调整的自适应速率限制器 */ export declare class AdaptiveRateLimiter { private defaultMinInterval; private defaultConcurrency; private lastResponse; private successiveErrors; private minInterval; private queues; /** * Create a new rate limiter * @param defaultMinInterval Default minimum interval between requests (ms) * @param defaultConcurrency Default maximum concurrent requests * * 创建新的速率限制器 * @param defaultMinInterval 请求之间的默认最小间隔(毫秒) * @param defaultConcurrency 默认最大并发请求数 */ constructor(defaultMinInterval?: number, defaultConcurrency?: number); /** * Get or create a queue for an exchange * @param exchange Exchange ID * @returns Queue instance * * 获取或创建交易所队列 * @param exchange 交易所ID * @returns 队列实例 */ private getQueue; /** * Execute a function with rate limiting * @param exchange Exchange ID * @param fn Function to execute * @returns Result of the function * * 执行带速率限制的函数 * @param exchange 交易所ID * @param fn 要执行的函数 * @returns 函数的结果 */ execute<T>(exchange: string, fn: () => Promise<T>): Promise<any>; /** * Wait for permission to make a request * @param exchange Exchange ID * * 等待获得请求许可 * @param exchange 交易所ID */ private acquirePermission; /** * Record a successful request * @param exchange Exchange ID * * 记录成功请求 * @param exchange 交易所ID */ private recordSuccess; /** * Record a failed request and increase backoff * @param exchange Exchange ID * * 记录失败请求并增加退避 * @param exchange 交易所ID */ private recordError; /** * Set the minimum interval for an exchange * @param exchange Exchange ID * @param interval New minimum interval in ms * * 设置交易所的最小间隔 * @param exchange 交易所ID * @param interval 新的最小间隔(毫秒) */ setMinInterval(exchange: string, interval: number): void; /** * Set concurrency for a specific exchange * @param exchange Exchange ID * @param concurrency Number of concurrent requests * * 设置特定交易所的并发度 * @param exchange 交易所ID * @param concurrency 并发请求数 */ setConcurrency(exchange: string, concurrency: number): void; /** * Get statistics for all exchange queues * @returns Statistics object * * 获取所有交易所队列的统计信息 * @returns 统计对象 */ getStats(): Record<string, any>; } export declare const rateLimiter: AdaptiveRateLimiter;