protected override async Task ExecuteAsync(CancellationToken stoppingToken)
        {
            _logger.LogDebug("{serviceName} is starting", nameof(BackgroundConsumeTwitterFeed));

            stoppingToken.Register(() =>
                                   _logger.LogDebug("{serviceName} background task is stopping.", nameof(BackgroundConsumeTwitterFeed)));

            while (!stoppingToken.IsCancellationRequested)
            {
                _logger.LogDebug("{serviceName} task doing background work.", nameof(BackgroundConsumeTwitterFeed));

                var client = await _credentialProvider.GetAuthenticatedTwitterClient();

                var sampleStream = client.StreamsV2.CreateSampleStream();

                sampleStream.TweetReceived += (_, eventArgs) =>
                {
                    try
                    {
                        _tweetProcessor.ProcessTweet(eventArgs.Tweet);
                    }
                    catch (TwitterAuthException e)
                    {
                        _logger.LogError(e, "Auth exception, check credentials");
                    }
                    catch (TwitterException e)
                    {
                        _logger.LogError(e, "Error from twitter");
                    }
                    catch (Exception e)
                    {
                        _logger.LogError(e, "Error processing tweet");
                    }
                };

                await sampleStream.StartAsync();
            }

            _logger.LogDebug("{serviceName} background task is stopping.", nameof(BackgroundConsumeTwitterFeed));

            await Task.CompletedTask;
        }