fix(lmxproxy): protect probe subscription from ReadAsync teardown, add instance configs
ReadAsync internally subscribes/unsubscribes the same ScanTime tag used by the persistent probe, which was tearing down the probe subscription and triggering false reconnects every ~5s. Guard UnsubscribeInternal and stored subscription state so the probe tag is never removed by other callers. Also removes DetailedHealthCheckService (redundant with the persistent probe), adds per-instance config files (appsettings.v2.json, appsettings.v2b.json) loaded via LMXPROXY_INSTANCE env var so deploys no longer overwrite port settings. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -30,7 +30,6 @@ namespace ZB.MOM.WW.LmxProxy.Host
|
||||
private ApiKeyService? _apiKeyService;
|
||||
private PerformanceMetrics? _performanceMetrics;
|
||||
private HealthCheckService? _healthCheckService;
|
||||
private DetailedHealthCheckService? _detailedHealthCheckService;
|
||||
private StatusReportService? _statusReportService;
|
||||
private StatusWebServer? _statusWebServer;
|
||||
private Server? _grpcServer;
|
||||
@@ -119,13 +118,11 @@ namespace ZB.MOM.WW.LmxProxy.Host
|
||||
|
||||
// 10. Create health check services
|
||||
_healthCheckService = new HealthCheckService(_mxAccessClient, _subscriptionManager, _performanceMetrics);
|
||||
_detailedHealthCheckService = new DetailedHealthCheckService(
|
||||
_mxAccessClient, _config.HealthCheck.TestTagAddress);
|
||||
|
||||
// 11. Create status report service
|
||||
_statusReportService = new StatusReportService(
|
||||
_mxAccessClient, _subscriptionManager, _performanceMetrics,
|
||||
_healthCheckService, _detailedHealthCheckService);
|
||||
_healthCheckService);
|
||||
|
||||
// 12. Start status web server
|
||||
_statusWebServer = new StatusWebServer(_config.WebServer, _statusReportService);
|
||||
|
||||
Reference in New Issue
Block a user