|
|
@@ -17,7 +17,7 @@ use crate::json_db_utils::{collect_special_trades_json, delete_db_by_exchange};
|
|
|
use crate::listener_tools::{TradeMap, update_trade};
|
|
|
use crate::msv::{generate_msv_by_trades, Indicators, parse_json_to_trades};
|
|
|
|
|
|
-const _EXCHANGE_NAME: &str = "gate_coin_spot";
|
|
|
+const EXCHANGE_NAME: &str = "gate_coin_spot";
|
|
|
|
|
|
lazy_static! {
|
|
|
// 给其他模块使用
|
|
|
@@ -26,7 +26,7 @@ lazy_static! {
|
|
|
static ref TRADES_MAP: Mutex<TradeMap> = Mutex::new(HashMap::new());
|
|
|
}
|
|
|
|
|
|
-pub async fn _run_listener(is_shutdown_arc: Arc<AtomicBool>) {
|
|
|
+pub async fn run_listener(is_shutdown_arc: Arc<AtomicBool>) {
|
|
|
let name = "gate_coin_spot_listener";
|
|
|
// 订阅所有币种
|
|
|
let login = BTreeMap::new();
|
|
|
@@ -38,9 +38,9 @@ pub async fn _run_listener(is_shutdown_arc: Arc<AtomicBool>) {
|
|
|
let symbol_infos = response.data.as_array().unwrap();
|
|
|
for symbol_info in symbol_infos {
|
|
|
let trade_status = symbol_info["trade_status"].as_str().unwrap();
|
|
|
- // let quote = symbol_info["quote"].as_str().unwrap();
|
|
|
- // if trade_status != "tradable" || quote == "USDT" { continue; };
|
|
|
- if trade_status != "tradable" { continue; };
|
|
|
+ let quote = symbol_info["quote"].as_str().unwrap();
|
|
|
+ if trade_status != "tradable" || quote == "USDT" { continue; };
|
|
|
+ // if trade_status != "tradable" { continue; };
|
|
|
let symbol = symbol_info["id"].as_str().unwrap().to_string();
|
|
|
symbols.push(symbol)
|
|
|
}
|
|
|
@@ -71,7 +71,7 @@ pub async fn _run_listener(is_shutdown_arc: Arc<AtomicBool>) {
|
|
|
let end_timestamp = Utc::now().timestamp_millis();
|
|
|
let start_timestamp = end_timestamp - 60 * 1000 * 60 * 2;
|
|
|
for symbol in symbols.clone() {
|
|
|
- let trades_value = collect_special_trades_json(start_timestamp, end_timestamp, _EXCHANGE_NAME, &symbol).await;
|
|
|
+ let trades_value = collect_special_trades_json(start_timestamp, end_timestamp, EXCHANGE_NAME, &symbol).await;
|
|
|
let trades = parse_json_to_trades(trades_value);
|
|
|
let msv = generate_msv_by_trades(trades, dec!(50), vec![], start_timestamp, end_timestamp);
|
|
|
let mut indicator_map = INDICATOR_MAP.lock().await;
|
|
|
@@ -84,7 +84,7 @@ pub async fn _run_listener(is_shutdown_arc: Arc<AtomicBool>) {
|
|
|
tokio::spawn(async move {
|
|
|
loop {
|
|
|
tokio::time::sleep(Duration::from_secs(1800)).await;
|
|
|
- delete_db_by_exchange(_EXCHANGE_NAME, "trades", 5 * 60).await;
|
|
|
+ delete_db_by_exchange(EXCHANGE_NAME, "trades", 5 * 60).await;
|
|
|
}
|
|
|
});
|
|
|
}
|
|
|
@@ -107,7 +107,7 @@ pub async fn _data_listener(response: ResponseData) {
|
|
|
|
|
|
// 更新到本地数据库
|
|
|
let trades_map = TRADES_MAP.lock().await;
|
|
|
- update_trade(trade, trades_map, _EXCHANGE_NAME).await;
|
|
|
+ update_trade(trade, trades_map, EXCHANGE_NAME).await;
|
|
|
}
|
|
|
}
|
|
|
_ => {
|