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.
This commit is contained in:
@@ -68,15 +68,29 @@ 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)?;
|
||||
|
||||
Reference in New Issue
Block a user