Fix: Analytics Worker berechnet jetzt alle Tabellen pro Tag
All checks were successful
Deployment / deploy-docker (push) Successful in 18s
All checks were successful
Deployment / deploy-docker (push) Successful in 18s
This commit is contained in:
Binary file not shown.
@@ -788,7 +788,8 @@ class AnalyticsWorker:
|
||||
return dates
|
||||
|
||||
def get_missing_dates(self) -> List[datetime.date]:
|
||||
"""Ermittelt fehlende Tage, die noch berechnet werden müssen"""
|
||||
"""Ermittelt fehlende Tage, die noch berechnet werden müssen.
|
||||
Prüft alle drei Analytics-Tabellen: analytics_custom, analytics_exchange_daily, analytics_daily_summary"""
|
||||
logger.info("=== get_missing_dates() called ===")
|
||||
# Hole das Datum des ersten Trades
|
||||
query = "select min(date_trunc('day', timestamp)) as first_date from trades"
|
||||
@@ -803,8 +804,13 @@ class AnalyticsWorker:
|
||||
else:
|
||||
first_date = datetime.datetime.fromtimestamp(first_date_value / 1000000, tz=datetime.timezone.utc).date()
|
||||
|
||||
# Hole bereits berechnete Daten
|
||||
existing_dates = self.get_existing_dates('analytics_custom')
|
||||
# Hole bereits berechnete Daten aus allen drei Tabellen
|
||||
existing_custom = self.get_existing_dates('analytics_custom')
|
||||
existing_exchange = self.get_existing_dates('analytics_exchange_daily')
|
||||
existing_summary = self.get_existing_dates('analytics_daily_summary')
|
||||
|
||||
# Kombiniere alle vorhandenen Daten (Union)
|
||||
existing_dates = existing_custom | existing_exchange | existing_summary
|
||||
|
||||
# Generiere alle Tage vom ersten Trade bis heute
|
||||
today = datetime.date.today()
|
||||
@@ -825,13 +831,14 @@ class AnalyticsWorker:
|
||||
else:
|
||||
last_trade_date = datetime.datetime.fromtimestamp(last_date_value / 1000000, tz=datetime.timezone.utc).date()
|
||||
|
||||
# Finde fehlende Tage
|
||||
# Finde fehlende Tage (Tage, die in mindestens einer Tabelle fehlen)
|
||||
missing_dates = [d for d in all_dates if d not in existing_dates]
|
||||
|
||||
# Debug-Logs (immer ausgeben)
|
||||
last_trade_str = str(last_trade_date) if last_trade_date else "None"
|
||||
logger.info(f"Date range: first trade={first_date}, last trade={last_trade_str}, today={today}")
|
||||
logger.info(f"Existing dates in analytics_custom: {len(existing_dates)} dates")
|
||||
logger.info(f"Existing dates - analytics_custom: {len(existing_custom)}, analytics_exchange_daily: {len(existing_exchange)}, analytics_daily_summary: {len(existing_summary)}")
|
||||
logger.info(f"Total unique existing dates across all tables: {len(existing_dates)}")
|
||||
if existing_dates:
|
||||
existing_sorted = sorted(existing_dates)
|
||||
logger.info(f" First existing: {existing_sorted[0]}, Last existing: {existing_sorted[-1]}")
|
||||
@@ -839,7 +846,7 @@ class AnalyticsWorker:
|
||||
if missing_dates:
|
||||
logger.info(f" First missing: {missing_dates[0]}, Last missing: {missing_dates[-1]}")
|
||||
else:
|
||||
logger.info(" No missing dates - all dates are already calculated")
|
||||
logger.info(" No missing dates - all dates are already calculated in all tables")
|
||||
|
||||
return sorted(missing_dates)
|
||||
|
||||
@@ -876,7 +883,11 @@ class AnalyticsWorker:
|
||||
yesterday = today - datetime.timedelta(days=1)
|
||||
|
||||
logger.info(f"Ensuring yesterday ({yesterday}) and today ({today}) are processed...")
|
||||
existing_dates = self.get_existing_dates('analytics_custom')
|
||||
# Prüfe alle drei Tabellen
|
||||
existing_custom = self.get_existing_dates('analytics_custom')
|
||||
existing_exchange = self.get_existing_dates('analytics_exchange_daily')
|
||||
existing_summary = self.get_existing_dates('analytics_daily_summary')
|
||||
existing_dates = existing_custom | existing_exchange | existing_summary
|
||||
|
||||
if yesterday not in existing_dates:
|
||||
logger.info(f"Processing yesterday's data: {yesterday}")
|
||||
@@ -909,7 +920,11 @@ class AnalyticsWorker:
|
||||
# Stelle sicher, dass gestern und heute verarbeitet wurden
|
||||
today = now.date()
|
||||
yesterday = today - datetime.timedelta(days=1)
|
||||
existing_dates = self.get_existing_dates('analytics_custom')
|
||||
# Prüfe alle drei Tabellen
|
||||
existing_custom = self.get_existing_dates('analytics_custom')
|
||||
existing_exchange = self.get_existing_dates('analytics_exchange_daily')
|
||||
existing_summary = self.get_existing_dates('analytics_daily_summary')
|
||||
existing_dates = existing_custom | existing_exchange | existing_summary
|
||||
|
||||
if yesterday not in existing_dates:
|
||||
logger.info(f"Processing yesterday's data: {yesterday}")
|
||||
|
||||
Reference in New Issue
Block a user