namespace PetCompanion.Services { public class PetActionBackgroundService : BackgroundService { private readonly IServiceProvider _serviceProvider; public PetActionBackgroundService(IServiceProvider serviceProvider) { _serviceProvider = serviceProvider; } protected override async Task ExecuteAsync(CancellationToken stoppingToken) { while (!stoppingToken.IsCancellationRequested) { using (var scope = _serviceProvider.CreateScope()) { var petActionService = scope.ServiceProvider.GetRequiredService(); petActionService.LoopPetActions(); } await Task.Delay(TimeSpan.FromMinutes(1), stoppingToken); } } } }