feat: pace startup housekeeper runs

This commit is contained in:
Marcel Peterkau
2026-06-21 21:42:38 +02:00
parent fc042f6711
commit e6200f4a02
5 changed files with 56 additions and 4 deletions
+13 -1
View File
@@ -119,10 +119,16 @@ class SplashScreen(tk.Toplevel):
errors = self.repository.validate()
self._messages.put(("status", "Baue Suchindex …"))
self.repository.list_members()
member_count = len(self.repository.list_member_ids())
findings = []
if self.run_housekeeper:
self._messages.put(("status", "Starte Hausmeister …"))
findings = Housekeeper(self.repository, self.housekeeper_settings).run()
findings = Housekeeper(self.repository, self.housekeeper_settings).run(
member_delay=_member_delay_for_splash(
self.minimum_display_seconds,
member_count,
)
)
result = StartupResult(self.repository, errors, findings)
self._messages.put(("result", result))
except Exception as exc:
@@ -265,3 +271,9 @@ def _progress_value(elapsed: float, minimum_seconds: float, startup_finished: bo
if startup_finished:
return elapsed_ratio * 100.0
return elapsed_ratio * 95.0
def _member_delay_for_splash(minimum_seconds: float, member_count: int) -> float:
if minimum_seconds <= 0 or member_count <= 0:
return 0.0
return minimum_seconds / member_count