Procházet zdrojové kódy

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 před 2 měsíci
rodič
revize
03defd624b
1 změnil soubory, kde provedl 3 přidání a 0 odebrání
  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');
     }