protected override async Task ExecuteAsync(CancellationToken stoppingToken)
        {
            _cancelationToken = stoppingToken;
            _logger.LogInformation($"SensorDataPublisherBackgroundRunner is starting.");
            stoppingToken.Register(Shutdown);

            await _busClient.ConnectAsync(stoppingToken);

            if (_busClient.IsConnected)
            {
                // Init Sensors
                foreach (var sensor in _sensors)
                {
                    //var logger = _loggerProvider.CreateLogger(sensor.GetType().Name);
                    sensor.Initialize(stoppingToken, OnSensorChanged);
                }

                foreach (var actor in _actors)
                {
                    actor.Initialize(_cancelationToken);
                }
                foreach (var actor in _actors)
                {
                    actor.Connect();
                }

                int i = 0;
                while (!stoppingToken.IsCancellationRequested)
                {
                    await Task.Delay(_settings.PollingDelay, stoppingToken);
                }
            }
            else
            {
                _logger.LogError("Can not connect to mqtt message broker service.");
            }

            _logger.LogDebug($"background task is stopping.");
        }