diff --git a/VoidCat/Services/Background/DeleteExpiredFiles.cs b/VoidCat/Services/Background/DeleteExpiredFiles.cs index d4a757c..d337346 100644 --- a/VoidCat/Services/Background/DeleteExpiredFiles.cs +++ b/VoidCat/Services/Background/DeleteExpiredFiles.cs @@ -22,28 +22,36 @@ public sealed class DeleteExpiredFiles : BackgroundService { while (!stoppingToken.IsCancellationRequested) { - using var scope = _scopeFactory.CreateScope(); - var metadata = scope.ServiceProvider.GetRequiredService(); - var fileInfoManager = scope.ServiceProvider.GetRequiredService(); - var fileStoreFactory = scope.ServiceProvider.GetRequiredService(); - - var files = await metadata.ListFiles(new(0, int.MaxValue)); - await foreach (var f in files.Results.WithCancellation(stoppingToken)) + try { - try - { - if (f.Expires < DateTime.Now) - { - await fileStoreFactory.DeleteFile(f.Id); - await fileInfoManager.Delete(f.Id); + using var scope = _scopeFactory.CreateScope(); + var metadata = scope.ServiceProvider.GetRequiredService(); + var fileInfoManager = scope.ServiceProvider.GetRequiredService(); + var fileStoreFactory = scope.ServiceProvider.GetRequiredService(); - _logger.LogInformation("Deleted file: {Id}", f.Id); + var files = await metadata.ListFiles(new(0, int.MaxValue)); + await foreach (var f in files.Results.WithCancellation(stoppingToken)) + { + try + { + if (f.Expires < DateTime.Now) + { + await fileStoreFactory.DeleteFile(f.Id); + await fileInfoManager.Delete(f.Id); + + _logger.LogInformation("Deleted file: {Id}", f.Id); + } + } + catch (Exception ex) + { + _logger.LogError(ex, "Failed to delete file: {Id}", f.Id); } } - catch (Exception ex) - { - _logger.LogError(ex, "Failed to delete file: {Id}", f.Id); - } + + } + catch (Exception ex) + { + _logger.LogError(ex, "Failed to run delete expired file services"); } await Task.Delay(TimeSpan.FromMinutes(5), stoppingToken);