protected override async Task ExecuteAsync(CancellationToken stoppingToken)
        {
            long lastId = 0;

            while (!stoppingToken.IsCancellationRequested)
            {
                try
                {
                    // Rate limited to 75 calls per 15 minutes, 5 calls per minute.
                    // We rely on the configured delay: DelayBetweenMentionCalls...
                    var mention = await _twitterClient.GetMostRecentMentionedTweetAsync();

                    if (mention != null && lastId != mention.Id)
                    {
                        if (mention.FullText
                            .Contains(_settings.TwitterHandle, StringComparison.OrdinalIgnoreCase))
                        {
                            _ = await MessageResource.CreateAsync(
                                body : $"{mention.Url}. Someone mentioned you on Twitter! Reply with 'Yes' to retweet this...",
                                from : new PhoneNumber(_settings.TwilioFromPhoneNumber),
                                to : new PhoneNumber(_settings.ToPhoneNumber));

                            lastId = mention.Id;
                        }
                    }
                }
                catch (Exception ex)
                {
                    _logger.LogError(ex.Message, ex);
                }
                finally
                {
                    await Task.Delay(
                        _settings.DelayBetweenMentionCalls,
                        stoppingToken);
                }
            }
        }