Browse Source

把携程干掉了,试试。

skyffire 1 year ago
parent
commit
b07a554f6c
2 changed files with 13 additions and 23 deletions
  1. 3 10
      standard/src/gate_swap.rs
  2. 10 13
      strategy/src/core.rs

+ 3 - 10
standard/src/gate_swap.rs

@@ -511,7 +511,6 @@ impl Platform for GateSwap {
 
     // 指令下单
     async fn command_order(&mut self, order_command: &mut OrderCommand, trace_stack: &TraceStack) {
-        let mut handles = vec![];
         // 撤销订单
         let cancel = &order_command.cancel;
         for item in cancel.keys() {
@@ -522,7 +521,7 @@ impl Platform for GateSwap {
             let custom_id = cancel_clone[&item_clone].get(0).unwrap_or(&"".to_string()).clone();
             let result_sd = self.order_sender.clone();
             let err_sd = self.error_sender.clone();
-            let handle = tokio::spawn(async move {
+            tokio::spawn(async move {
                 let result = self_clone.cancel_order(&order_id, &custom_id).await;
                 match result {
                     Ok(_) => {
@@ -544,7 +543,6 @@ impl Platform for GateSwap {
                     }
                 }
             });
-            handles.push(handle)
         }
         // 下单指令
         order_command.limits_open.extend(order_command.limits_close.clone());
@@ -556,7 +554,7 @@ impl Platform for GateSwap {
             let err_sd = self.error_sender.clone();
             let ts = trace_stack.clone();
 
-            let handle = tokio::spawn(async move {
+            tokio::spawn(async move {
                 let value = limits_clone[&item_clone].clone();
                 let amount = Decimal::from_str(value.get(0).unwrap_or(&"0".to_string())).unwrap();
                 let side = value.get(1).unwrap();
@@ -581,7 +579,6 @@ impl Platform for GateSwap {
                     }
                 }
             });
-            handles.push(handle)
         }
         // 检查订单指令
         let check = &order_command.check;
@@ -593,7 +590,7 @@ impl Platform for GateSwap {
             let custom_id = check_clone[&item_clone].get(0).unwrap_or(&"".to_string()).clone();
             let result_sd = self.order_sender.clone();
             let err_sd = self.error_sender.clone();
-            let handle = tokio::spawn(async move {
+            tokio::spawn(async move {
                 let result = self_clone.get_order_detail(&order_id, &custom_id).await;
                 match result {
                     Ok(result) => {
@@ -604,11 +601,7 @@ impl Platform for GateSwap {
                     }
                 }
             });
-            handles.push(handle)
         }
-
-        let futures = FuturesUnordered::from_iter(handles);
-        let _: Result<Vec<_>, _> = futures.try_collect().await;
     }
 }
 

+ 10 - 13
strategy/src/core.rs

@@ -649,25 +649,22 @@ impl Core {
                 self.strategy.local_time = Utc::now().timestamp_millis();
 
                 // 产生交易信号
-                let orders = self.strategy.on_tick(&self.local_orders,
-                                                   &self.local_position_by_orders,
-                                                   &self.agg_market,
-                                                   &self.local_cash,
-                                                   &self.local_coin,
-                                                   &self.ref_price,
-                                                   &self.predict,
-                                                   &trace_stack.ins);
+                let mut orders = self.strategy.on_tick(&self.local_orders,
+                                                       &self.local_position_by_orders,
+                                                       &self.agg_market,
+                                                       &self.local_cash,
+                                                       &self.local_coin,
+                                                       &self.ref_price,
+                                                       &self.predict,
+                                                       &trace_stack.ins);
 
                 if orders.is_not_empty() {
                     //异步交易所处理订单信号
                     let mut platform_rest_fb = self.platform_rest.clone_box();
                     // info!("订单指令:{:?}", orders);
                     let ts = trace_stack.clone();
-                    let mut orders_clone = orders.clone();
-                    spawn(async move {
-                        TraceStack::show_delay(&ts.ins);
-                        platform_rest_fb.command_order(&mut orders_clone, &ts).await;
-                    });
+                    TraceStack::show_delay(&ts.ins);
+                    platform_rest_fb.command_order(&mut orders, &ts).await;
 
                     // 发了单再更新本地记录。
                     self._update_local_orders(&orders);