Fix backfill freshness
Signed-off-by: Nikolaos Karaolidis <nick@karaolidis.com>
This commit is contained in:
46
src/main.rs
46
src/main.rs
@@ -12,6 +12,7 @@ use config::{
|
||||
CLICKHOUSE_BATCH_NEWS_SIZE, CLICKHOUSE_MAX_CONNECTIONS,
|
||||
};
|
||||
use dotenv::dotenv;
|
||||
use log::info;
|
||||
use log4rs::config::Deserializers;
|
||||
use qrust::{create_send_await, database};
|
||||
use tokio::{join, spawn, sync::mpsc, try_join};
|
||||
@@ -29,24 +30,47 @@ async fn main() {
|
||||
let _ = *CLICKHOUSE_BATCH_NEWS_SIZE;
|
||||
let _ = *CLICKHOUSE_MAX_CONNECTIONS;
|
||||
|
||||
info!("Marking all assets as stale.");
|
||||
|
||||
let assets = database::assets::select(
|
||||
&config.clickhouse_client,
|
||||
&config.clickhouse_concurrency_limiter,
|
||||
)
|
||||
.await
|
||||
.unwrap()
|
||||
.into_iter()
|
||||
.map(|asset| (asset.symbol, asset.class))
|
||||
.collect::<Vec<_>>();
|
||||
|
||||
let symbols = assets.iter().map(|(symbol, _)| symbol).collect::<Vec<_>>();
|
||||
|
||||
try_join!(
|
||||
database::backfills_bars::unfresh(
|
||||
database::backfills_bars::set_fresh_where_symbols(
|
||||
&config.clickhouse_client,
|
||||
&config.clickhouse_concurrency_limiter
|
||||
&config.clickhouse_concurrency_limiter,
|
||||
false,
|
||||
&symbols
|
||||
),
|
||||
database::backfills_news::unfresh(
|
||||
database::backfills_news::set_fresh_where_symbols(
|
||||
&config.clickhouse_client,
|
||||
&config.clickhouse_concurrency_limiter
|
||||
&config.clickhouse_concurrency_limiter,
|
||||
false,
|
||||
&symbols
|
||||
)
|
||||
)
|
||||
.unwrap();
|
||||
|
||||
info!("Cleaning up database.");
|
||||
|
||||
database::cleanup_all(
|
||||
&config.clickhouse_client,
|
||||
&config.clickhouse_concurrency_limiter,
|
||||
)
|
||||
.await
|
||||
.unwrap();
|
||||
|
||||
info!("Optimizing database.");
|
||||
|
||||
database::optimize_all(
|
||||
&config.clickhouse_client,
|
||||
&config.clickhouse_concurrency_limiter,
|
||||
@@ -54,12 +78,16 @@ async fn main() {
|
||||
.await
|
||||
.unwrap();
|
||||
|
||||
info!("Rehydrating account data.");
|
||||
|
||||
init::check_account(&config).await;
|
||||
join!(
|
||||
init::rehydrate_orders(&config),
|
||||
init::rehydrate_positions(&config)
|
||||
);
|
||||
|
||||
info!("Starting threads.");
|
||||
|
||||
spawn(threads::trading::run(config.clone()));
|
||||
|
||||
let (data_sender, data_receiver) = mpsc::channel::<threads::data::Message>(100);
|
||||
@@ -73,16 +101,6 @@ async fn main() {
|
||||
|
||||
spawn(threads::clock::run(config.clone(), clock_sender));
|
||||
|
||||
let assets = database::assets::select(
|
||||
&config.clickhouse_client,
|
||||
&config.clickhouse_concurrency_limiter,
|
||||
)
|
||||
.await
|
||||
.unwrap()
|
||||
.into_iter()
|
||||
.map(|asset| (asset.symbol, asset.class))
|
||||
.collect::<Vec<_>>();
|
||||
|
||||
create_send_await!(
|
||||
data_sender,
|
||||
threads::data::Message::new,
|
||||
|
Reference in New Issue
Block a user