using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Hosting; using Microsoft.Extensions.Logging; using UniVerse.Application.Interfaces; namespace UniVerse.Api.BackgroundServices; public class LlmProcessingBackgroundService : BackgroundService { private readonly IServiceProvider _services; private readonly ILogger _logger; public LlmProcessingBackgroundService(IServiceProvider services, ILogger logger) { _services = services; _logger = logger; } protected override async Task ExecuteAsync(CancellationToken stoppingToken) { _logger.LogInformation("LLM Processing Background Service started"); while (!stoppingToken.IsCancellationRequested) { try { using var scope = _services.CreateScope(); var llmService = scope.ServiceProvider.GetRequiredService(); await llmService.ProcessPendingReviewsAsync(); } catch (Exception ex) { _logger.LogError(ex, "Error in LLM processing background service"); } await Task.Delay(TimeSpan.FromMinutes(2), stoppingToken); } } }