refactor: replace periodic tasks loop with background service
This commit is contained in:
parent
54ec469cd9
commit
fb324e7576
4 changed files with 67 additions and 57 deletions
26
Foxnouns.Backend/Services/PeriodicTasksService.cs
Normal file
26
Foxnouns.Backend/Services/PeriodicTasksService.cs
Normal file
|
@ -0,0 +1,26 @@
|
|||
namespace Foxnouns.Backend.Services;
|
||||
|
||||
public class PeriodicTasksService(ILogger logger, IServiceProvider services) : BackgroundService
|
||||
{
|
||||
private readonly ILogger _logger = logger.ForContext<PeriodicTasksService>();
|
||||
|
||||
protected override async Task ExecuteAsync(CancellationToken ct)
|
||||
{
|
||||
using var timer = new PeriodicTimer(TimeSpan.FromMinutes(1));
|
||||
while (await timer.WaitForNextTickAsync(ct))
|
||||
{
|
||||
_logger.Debug("Collecting metrics");
|
||||
await RunPeriodicTasksAsync(ct);
|
||||
}
|
||||
}
|
||||
|
||||
private async Task RunPeriodicTasksAsync(CancellationToken ct)
|
||||
{
|
||||
_logger.Debug("Running periodic tasks");
|
||||
|
||||
await using var scope = services.CreateAsyncScope();
|
||||
|
||||
var keyCacheSvc = scope.ServiceProvider.GetRequiredService<KeyCacheService>();
|
||||
await keyCacheSvc.DeleteExpiredKeysAsync(ct);
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue