From 55a86f75f14f2f1871115036034aa70a97fee95b Mon Sep 17 00:00:00 2001 From: "Torsten Schulz (local)" Date: Thu, 29 Jan 2026 08:21:48 +0100 Subject: [PATCH] Improve stock creation logging in StockageManager: Add detailed logging for the number of new stocks created and errors encountered during the stock addition process. Update randomness threshold for stock creation to increase the likelihood of stock generation per town. --- src/worker/stockage_manager.rs | 25 +++++++++++++++++++++---- 1 file changed, 21 insertions(+), 4 deletions(-) diff --git a/src/worker/stockage_manager.rs b/src/worker/stockage_manager.rs index 882bd49..9677c05 100644 --- a/src/worker/stockage_manager.rs +++ b/src/worker/stockage_manager.rs @@ -68,16 +68,30 @@ impl StockageManager { let dist = Uniform::from(0.0..1.0); let town_ids = Self::get_town_ids(pool)?; + eprintln!("[StockageManager] Prüfe {} Städte auf neue Lager", town_ids.len()); + let mut stocks_added = 0; for town_id in town_ids { - // Wahrscheinlichkeit analog: round(dist * 2160) <= 1 - let roll: f64 = dist.sample(&mut rng) * 2160.0_f64; + // Wahrscheinlichkeit: round(dist * 216) <= 1 + // Das bedeutet: 2/217 ≈ 0.92% pro Stadt pro Durchlauf + // Pro Tag (1440 Durchläufe): ~73% Chance pro Stadt + // Erhöht von 2/2161 (0.0926%) auf 2/217 (0.92%) = 10x höher + let roll: f64 = dist.sample(&mut rng) * 216.0_f64; let chance = roll.round(); if chance <= 1.0 { - Self::add_stock_for_town(pool, broker, town_id)?; + eprintln!("[StockageManager] Erstelle Lager für Stadt {}", town_id); + if let Err(err) = Self::add_stock_for_town(pool, broker, town_id) { + eprintln!("[StockageManager] Fehler beim Erstellen von Lager für Stadt {}: {}", town_id, err); + } else { + stocks_added += 1; + } } } + if stocks_added > 0 { + eprintln!("[StockageManager] {} neue Lager erstellt", stocks_added); + } + Ok(()) } @@ -109,7 +123,10 @@ impl StockageManager { .map_err(|e| DbError::new(format!("[StockageManager] DB-Verbindung fehlgeschlagen: {e}")))?; conn.prepare("add_stock", QUERY_INSERT_STOCK)?; - conn.execute("add_stock", &[&town_id])?; + let rows = conn.execute("add_stock", &[&town_id])?; + + let inserted_count = rows.len(); + eprintln!("[StockageManager] Lager für Stadt {} erstellt: {} Einträge", town_id, inserted_count); // Benachrichtige alle User in der Region let users = Self::get_region_users(&mut conn, town_id)?;