Ver Fonte

全部改成同步。

skyffire há 1 ano atrás
pai
commit
2924819091
1 ficheiros alterados com 43 adições e 58 exclusões
  1. 43 58
      standard/src/gate_swap.rs

+ 43 - 58
standard/src/gate_swap.rs

@@ -514,86 +514,71 @@ impl Platform for GateSwap {
             let order_id = order_command.cancel[item].get(1).unwrap().clone();
             let custom_id = order_command.cancel[item].get(0).unwrap().clone();
 
-            let mut self_clone = self.clone();
-            let result_sd = self.order_sender.clone();
-            let err_sd = self.error_sender.clone();
-            tokio::spawn(async move {
-                let result = self_clone.cancel_order(&order_id, &custom_id).await;
-                match result {
-                    Ok(_) => {
-                        // result_sd.send(result).await.unwrap();
-                    }
-                    Err(error) => {
-                        // 取消失败去查订单。
-                        let query_rst = self_clone.get_order_detail(&order_id, &custom_id).await;
-                        match query_rst {
-                            Ok(order) => {
-                                result_sd.send(order).await.unwrap();
-                            }
-                            Err(_err) => {
-                                // error!("撤单失败,而且查单也失败了,gate_io_swap,oid={}, cid={}。", order_id.clone(), custom_id.clone());
-                                // panic!("撤单失败,而且查单也失败了,gate_io_swap,oid={}, cid={}。", order_id.clone(), custom_id.clone());
-                            }
+            let result = self.cancel_order(&order_id, &custom_id).await;
+            match result {
+                Ok(_) => {
+                    // result_sd.send(result).await.unwrap();
+                }
+                Err(error) => {
+                    // 取消失败去查订单。
+                    let query_rst = self.get_order_detail(&order_id, &custom_id).await;
+                    match query_rst {
+                        Ok(order) => {
+                            self.order_sender.send(order).await.unwrap();
+                        }
+                        Err(_err) => {
+                            // error!("撤单失败,而且查单也失败了,gate_io_swap,oid={}, cid={}。", order_id.clone(), custom_id.clone());
+                            // panic!("撤单失败,而且查单也失败了,gate_io_swap,oid={}, cid={}。", order_id.clone(), custom_id.clone());
                         }
-                        err_sd.send(error).await.unwrap();
                     }
+                    self.error_sender.send(error).await.unwrap();
                 }
-            });
+            }
         }
         // 下单指令
         order_command.limits_open.extend(order_command.limits_close.clone());
         for item in order_command.limits_open.keys() {
             let ts = trace_stack.clone();
 
-            let amount = Decimal::from_str(&*order_command.limits_open[item].get(0).unwrap().clone()).unwrap().clone();
+            let amount = Decimal::from_str(&*order_command.limits_open[item].get(0).unwrap().clone()).unwrap();
             let side = order_command.limits_open[item].get(1).unwrap().clone();
             let price = Decimal::from_str(&*order_command.limits_open[item].get(2).unwrap().clone()).unwrap();
             let cid = order_command.limits_open[item].get(3).unwrap().clone();
 
-            let mut self_clone = self.clone();
-            let result_sd = self.order_sender.clone();
-            let err_sd = self.error_sender.clone();
-            tokio::spawn(async move {
-                //  order_name: [数量,方向,价格,c_id]
-                info!("{}", ts.to_string());
-                TraceStack::show_delay(&ts.ins);
-                let result = self_clone.take_order(&cid, &side, price, amount).await;
-                match result {
-                    Ok(mut result) => {
-                        result.trace_stack = ts;
-
-                        result_sd.send(result).await.unwrap();
-                    }
-                    Err(error) => {
-                        let mut err_order = Order::new();
-                        err_order.custom_id = cid.clone();
-                        err_order.status = "REMOVE".to_string();
+            //  order_name: [数量,方向,价格,c_id]
+            info!("{}", ts.to_string());
+            TraceStack::show_delay(&ts.ins);
+            let result = self.take_order(&cid, &side, price, amount).await;
+            match result {
+                Ok(mut result) => {
+                    result.trace_stack = ts;
 
-                        result_sd.send(err_order).await.unwrap();
-                        err_sd.send(error).await.unwrap();
-                    }
+                    self.order_sender.send(result).await.unwrap();
                 }
-            });
+                Err(error) => {
+                    let mut err_order = Order::new();
+                    err_order.custom_id = cid.clone();
+                    err_order.status = "REMOVE".to_string();
+
+                    self.order_sender.send(err_order).await.unwrap();
+                    self.error_sender.send(error).await.unwrap();
+                }
+            }
         }
         // 检查订单指令
         for item in order_command.check.keys() {
             let order_id = order_command.check[item].get(1).unwrap().clone();
             let custom_id = order_command.check[item].get(0).unwrap().clone();
 
-            let mut self_clone = self.clone();
-            let result_sd = self.order_sender.clone();
-            let err_sd = self.error_sender.clone();
-            tokio::spawn(async move {
-                let result = self_clone.get_order_detail(&order_id, &custom_id).await;
-                match result {
-                    Ok(result) => {
-                        result_sd.send(result).await.unwrap();
-                    }
-                    Err(error) => {
-                        err_sd.send(error).await.unwrap();
-                    }
+            let result = self.get_order_detail(&order_id, &custom_id).await;
+            match result {
+                Ok(result) => {
+                    self.order_sender.send(result).await.unwrap();
+                }
+                Err(error) => {
+                    self.error_sender.send(error).await.unwrap();
                 }
-            });
+            }
         }
     }
 }