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."); }