浏览代码

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 月之前
父节点
当前提交
03defd624b
共有 1 个文件被更改,包括 3 次插入0 次删除
  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');
     }