Pārlūkot izejas kodu

fix: add delay after cancelAllOrders to wait for WS events

Problem: cancelAllOrders() returns immediately after sending the
cancel request, but order cancellation events arrive via WebSocket
asynchronously. This causes new orders to be created before the
cancellation events are processed, leading to order accumulation.

Solution: Add 1 second delay after cancelAllOrders() to allow
WebSocket order cancellation events to propagate and be processed
before creating new orders.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
helium3@sina.com 2 mēneši atpakaļ
vecāks
revīzija
03defd624b
1 mainītis faili ar 3 papildinājumiem un 0 dzēšanām
  1. 3 0
      apps/runner/src/index.ts

+ 3 - 0
apps/runner/src/index.ts

@@ -568,6 +568,9 @@ const defaultGridSymbol = cfg.grid?.symbol || primarySymbol;
     try {
       await cancelAllOrders(gridConfig.symbol);
       logger.info('Old orders cancelled successfully');
+      // 等待WebSocket订单取消事件到达,避免立即创建新订单时还有旧订单残留
+      await new Promise(resolve => setTimeout(resolve, 1000));
+      logger.info('Waited for order cancellation events to propagate');
     } catch (error) {
       logger.warn({ error: normalizeError(error) }, 'Failed to cancel old orders, proceeding with initialization');
     }