Browse Source

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 tháng trước cách đây
mục cha
commit
03defd624b
1 tập tin đã thay đổi với 3 bổ sung0 xóa
  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');
     }