@
R4: Worker von WorkerEngine auf IHostedService (Generic Host) - WorkerBase implementiert IHostedService (StartAsync/StopAsync mit CancellationToken, eigener CTS, Guard auf Info.Active); IWorker auf Metadaten + TriggerAsync reduziert - Worker via AddHostedService registriert (Core + Modul); AppHost.Start() startet sie, AppHost.StopAsync() stoppt sie - WorkerEngine auf leichte Registry reduziert (WorkerInfos fuer UI + TriggerWorkerAsync) - LauncherForm startet/stoppt keine Worker mehr (Host-getrieben) - Hosting.Abstractions im Core; Tests angepasst -> 43/43 gruen; smoke-ui + App-Start ok Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> @
This commit is contained in:
+2
-3
@@ -115,7 +115,7 @@ public sealed class LauncherForm : Form
|
||||
module.StopAsync(default).GetAwaiter().GetResult();
|
||||
}
|
||||
catch { /* Shutdown darf nicht am Modul scheitern */ }
|
||||
_workerEngine.StopAllAsync().GetAwaiter().GetResult();
|
||||
// Worker/Services stoppt der Host in Program.Main via AppHost.StopAsync() nach Application.Run.
|
||||
|
||||
base.OnFormClosing(e);
|
||||
}
|
||||
@@ -133,14 +133,13 @@ public sealed class LauncherForm : Form
|
||||
// Das gesamte Schema (core_ + ct_) läuft über EF-Migrationen, extern via
|
||||
// `dotnet ef database update` angewendet – keine Laufzeit-Migration mehr.
|
||||
|
||||
// Worker/Services laufen bereits (Generic Host, AppHost.Start()). Hier nur noch Modul-Start.
|
||||
foreach (var module in _modules)
|
||||
{
|
||||
try { await module.StartAsync(default); }
|
||||
catch (Exception ex) { _logger.Error(module.Name, $"{module.Name}: Start fehlgeschlagen.", ex); }
|
||||
}
|
||||
|
||||
await _workerEngine.StartAllAsync();
|
||||
|
||||
_logger.Info("Core", "IBKRTrader bereit.");
|
||||
SetStatus("Bereit");
|
||||
UpdateButtonStates();
|
||||
|
||||
Reference in New Issue
Block a user