Add news data support

- Refactor everything in the process, oops

Signed-off-by: Nikolaos Karaolidis <nick@karaolidis.com>
This commit is contained in:
2024-01-25 10:46:42 +00:00
parent 178a062c25
commit 002f70e299
53 changed files with 1683 additions and 677 deletions

View File

@@ -3,9 +3,9 @@
#![feature(hash_extract_if)]
mod config;
mod data;
mod database;
mod routes;
mod threads;
mod types;
mod utils;
@@ -13,8 +13,7 @@ use crate::utils::cleanup;
use config::Config;
use dotenv::dotenv;
use log4rs::config::Deserializers;
use tokio::{spawn, sync::broadcast};
use types::{BroadcastMessage, Class};
use tokio::{spawn, sync::mpsc};
#[tokio::main]
async fn main() {
@@ -24,21 +23,27 @@ async fn main() {
cleanup(&app_config.clickhouse_client).await;
let (broadcast_bus, _) = broadcast::channel::<BroadcastMessage>(100);
let (asset_status_sender, asset_status_receiver) =
mpsc::channel::<threads::data::asset_status::Message>(100);
let (clock_sender, clock_receiver) = mpsc::channel::<threads::clock::Message>(1);
spawn(data::market::run(
spawn(threads::data::run(
app_config.clone(),
Class::UsEquity,
broadcast_bus.clone(),
asset_status_receiver,
clock_receiver,
));
spawn(data::market::run(
app_config.clone(),
Class::Crypto,
broadcast_bus.clone(),
));
spawn(threads::clock::run(app_config.clone(), clock_sender));
spawn(data::clock::run(app_config.clone(), broadcast_bus.clone()));
let assets = database::assets::select(&app_config.clickhouse_client).await;
routes::run(app_config, broadcast_bus).await;
let (asset_status_message, asset_status_receiver) =
threads::data::asset_status::Message::new(threads::data::asset_status::Action::Add, assets);
asset_status_sender
.send(asset_status_message)
.await
.unwrap();
asset_status_receiver.await.unwrap();
routes::run(app_config, asset_status_sender).await;
}