pet-companion-back/Services/PetActionBackgroundService.cs

27 lines
847 B
C#

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>();
petActionService.LoopPetActions();
}
await Task.Delay(TimeSpan.FromMinutes(1), stoppingToken);
}
}
}
}