浏览代码

添加http请求响应json解析容错;添加coinex撤单失败日志打印。

JiahengHe 1 年之前
父节点
当前提交
8a47501464
共有 2 个文件被更改,包括 17 次插入8 次删除
  1. 13 5
      exchanges/src/coinex_swap_rest.rs
  2. 4 3
      standard/src/coinex_swap.rs

+ 13 - 5
exchanges/src/coinex_swap_rest.rs

@@ -553,12 +553,20 @@ impl CoinexSwapRest {
                 let text_result = response.text().await;
                 match text_result {
                     Ok(text) => {
-                        let data_json: Value = serde_json::from_str(text.as_str()).unwrap();
-                        return if is_success && data_json["code"].to_string() == "0"{
-                            self.on_success_data(data_json["data"].clone())
-                        } else {
-                            self.on_error_data(&text, &url, &body)
+                        match serde_json::from_str(text.as_str()) {
+                            Ok(data_json) => {
+                                return if is_success && data_json["code"].to_string() == "0"{
+                                    self.on_success_data(data_json["data"].clone())
+                                } else {
+                                    self.on_error_data(&text, &url, &body)
+                                }
+                            },
+                            Err(e) => {
+                                error!("{} 请求完成,解析响应内容JSON失败 {} {}", url, text.as_str(), e);
+                                self.on_error_data(&e.to_string(), &url, &body)
+                            }
                         }
+
                     },
                     Err(e) => {
                         error!("{} 请求完成,解析响应内容失败 {}", url, e);

+ 4 - 3
standard/src/coinex_swap.rs

@@ -10,7 +10,7 @@ use rust_decimal::prelude::{FromPrimitive, ToPrimitive};
 use serde_json::{Value};
 use tokio::spawn;
 use tokio::time::Instant;
-use tracing::{error, info, trace};
+use tracing::{error, info, trace, warn};
 use exchanges::coinex_swap_rest::CoinexSwapRest;
 use crate::{Platform, ExchangeEnum, Account, Position, Ticker, Market, Order, OrderCommand, PositionModeEnum};
 use global::trace_stack::TraceStack;
@@ -465,7 +465,8 @@ impl Platform for CoinexSwap {
             result.custom_id = custom_id.to_string();
             Ok(result)
         } else {
-            Err(Error::new(ErrorKind::Other, res_data.to_string()))
+            let message = format!("撤单HTTP请求失败  order_id: {}, custom_id: {}, res_data: {:?}", order_id, custom_id, res_data);
+            Err(Error::new(ErrorKind::Other, message))
         }
     }
     // 批量撤销订单
@@ -601,7 +602,7 @@ impl Platform for CoinexSwap {
                                 self_clone.order_sender.send(order).await.unwrap();
                             }
                             Err(_err) => {
-                                // error!("撤单失败,而且查单也失败了,Coinex_io_swap,oid={}, cid={}。", order_id.clone(), custom_id.clone());
+                                warn!("撤单失败,而且查单也失败了,Coinex_io_swap,oid={}, cid={}。", order_id.clone(), custom_id.clone());
                                 // panic!("撤单失败,而且查单也失败了,Coinex_io_swap,oid={}, cid={}。", order_id.clone(), custom_id.clone());
                             }
                         }