This commit is contained in:
19
daemon.py
19
daemon.py
@@ -129,16 +129,16 @@ def run_task(historical=False):
|
||||
logger.info(f"No trades fetched from {exchange.name}.")
|
||||
continue
|
||||
|
||||
# Hash-basierte Deduplizierung
|
||||
# Hole existierende Hashes für Trades ab dem ältesten neuen Trade
|
||||
# Hash-basierte Deduplizierung - IMMER prüfen!
|
||||
oldest_trade_ts = min(t.timestamp for t in trades)
|
||||
newest_trade_ts = max(t.timestamp for t in trades)
|
||||
|
||||
# Nur prüfen wenn wir nicht einen komplett historischen Sync machen
|
||||
if last_ts > datetime.datetime.min.replace(tzinfo=datetime.timezone.utc):
|
||||
# Hole Hashes der letzten 7 Tage für diese Exchange
|
||||
check_since = oldest_trade_ts - datetime.timedelta(days=1)
|
||||
existing_hashes = get_existing_trade_hashes(db_url, exchange.name, check_since)
|
||||
logger.info(f"Found {len(existing_hashes)} existing trade hashes in DB")
|
||||
# Hole Hashes für den Zeitraum der neuen Trades (plus 1 Tag Puffer)
|
||||
check_since = oldest_trade_ts - datetime.timedelta(days=1)
|
||||
existing_hashes = get_existing_trade_hashes(db_url, exchange.name, check_since)
|
||||
|
||||
if existing_hashes:
|
||||
logger.info(f"Found {len(existing_hashes)} existing trade hashes in DB for period")
|
||||
|
||||
# Filtere nur wirklich neue Trades
|
||||
new_trades = []
|
||||
@@ -147,7 +147,8 @@ def run_task(historical=False):
|
||||
if trade_hash not in existing_hashes:
|
||||
new_trades.append(t)
|
||||
else:
|
||||
# Historischer Sync - keine Deduplizierung nötig
|
||||
# Keine existierenden Hashes gefunden - alle Trades sind neu
|
||||
logger.info(f"No existing hashes found - all trades are new")
|
||||
new_trades = trades
|
||||
|
||||
logger.info(f"Found {len(trades)} total trades, {len(new_trades)} are new.")
|
||||
|
||||
Reference in New Issue
Block a user