diff --git a/ingestor/managers/ingestor_manager.py b/ingestor/managers/ingestor_manager.py index f82116c..bc4e094 100644 --- a/ingestor/managers/ingestor_manager.py +++ b/ingestor/managers/ingestor_manager.py @@ -243,10 +243,12 @@ class IngestorManager(BaseActivity): f'Failed to initialize OPC manager for server {server}, ' f'removing server from managed tags.' ) - _a = [ + + for slot, _value in current_managed_tags.items(): + if server in self.opc_managers: + await self.opc_managers[server].shutdown() + del self.opc_managers[server] self.managed_tags[slot].pop(server, None) - for slot, _value in current_managed_tags.items() - ] servers = list(self.opc_managers.keys()) for server in servers: @@ -282,7 +284,9 @@ class IngestorManager(BaseActivity): self.logger.warning(f'OPC server {server} is lost. Server will be disconnected.') for slot, _config in self.managed_tags.items(): - await self.managed_tags[slot][server].shutdown() + if server in self.opc_managers: + await self.opc_managers[server].shutdown() + del self.opc_managers[server] self.managed_tags[slot].pop(server, None) metrics.OPC_MANAGERS_ACTIVE.labels(pod_id=self.pod_id).set(len(self.opc_managers)) @@ -605,4 +609,7 @@ class IngestorManager(BaseActivity): to_remove.append([slot, server]) for slot, server in to_remove: + if server in self.opc_managers: + await self.opc_managers[server].shutdown() + del self.opc_managers[server] self.managed_tags[slot].pop(server, None)