Просмотр исходного кода

修复跟踪系统偶尔报时不准确的bug。

skyfffire 2 лет назад
Родитель
Сommit
4a58a45194
3 измененных файлов с 5 добавлено и 2 удалено
  1. 1 2
      global/src/trace_stack.rs
  2. 1 0
      src/quant_libs.rs
  3. 3 0
      strategy/src/exchange_disguise.rs

+ 1 - 2
global/src/trace_stack.rs

@@ -79,13 +79,12 @@ impl TraceStack {
 
 impl fmt::Display for TraceStack {
     fn fmt(&self, f: &mut Formatter<'_>) -> fmt::Result {
-        write!(f, "订单来源:{}\n通道+锁耗时{}微秒,数据格式化耗时{}微秒,计算层执行耗时{}微秒, 进入协程耗时{}微秒, 发送订单耗时(发送-服务器处理-响应到本地){}微秒({}毫秒),总共耗时{}微秒。",
+        write!(f, "订单来源:{}\n通道+锁耗时{}微秒,数据格式化耗时{}微秒,计算层执行耗时{}微秒, 进入协程耗时{}微秒, 发送订单耗时(发送-服务器处理-响应到本地){}毫秒,总共耗时{}毫秒。",
             self.source,
             self.before_quant - self.after_network,
             self.after_format - self.before_format,
             self.after_strategy - self.before_strategy,
             self.before_send - self.before_send_thread,
-            self.after_send - self.before_send,
             (self.after_send - self.before_send).to_f64().unwrap() / 1000.0,
             (self.after_send - self.after_network).to_f64().unwrap() / 1000.0
         )

+ 1 - 0
src/quant_libs.rs

@@ -52,6 +52,7 @@ pub async fn init(params: Params, ws_running: Arc<AtomicBool>, running: Arc<Atom
                     // 刚下的订单有可能会成交,所以有几率触发后续订单逻辑,所以这里也是一个订单触发逻辑
                     let mut trace_stack = TraceStack::default();
                     trace_stack.on_network(Utc::now().timestamp_micros());
+                    trace_stack.on_before_quant();
 
                     if order.status != "NULL" {
                         trace_stack.on_before_format();

+ 3 - 0
strategy/src/exchange_disguise.rs

@@ -247,6 +247,7 @@ async fn kucoin_swap_run(bool_v1 :Arc<AtomicBool>, type_num: i8, quant_arc: Arc<
             match rx.recv().await {
                 Some(data) => {
                     trace_stack.on_network(data.time);
+                    trace_stack.on_before_quant();
 
                     if data.code != "200".to_string() {
                         continue;
@@ -368,6 +369,7 @@ async fn reference_binance_spot_run(bool_v1 :Arc<AtomicBool>, quant_arc: Arc<Mut
             match rx.recv().await {
                 Some(data) => {
                     trace_stack.on_network(data.time);
+                    trace_stack.on_before_quant();
 
                     if data.code != "200".to_string() {
                         continue;
@@ -465,6 +467,7 @@ async fn reference_binance_swap_run(bool_v1 :Arc<AtomicBool>, quant_arc: Arc<Mut
             match rx.recv().await {
                 Some(data) => {
                     trace_stack.on_network(data.time);
+                    trace_stack.on_before_quant();
 
                     if data.code != "200".to_string() {
                         continue;