mirror of
				https://github.com/Kareadita/Kavita.git
				synced 2025-11-03 19:17:05 -05:00 
			
		
		
		
	
		
			
				
	
	
		
			37 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			37 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
using System.IO;
 | 
						|
using API.Interfaces.Services;
 | 
						|
using Hangfire;
 | 
						|
using Microsoft.Extensions.Logging;
 | 
						|
 | 
						|
namespace API.Services.Tasks
 | 
						|
{
 | 
						|
    /// <summary>
 | 
						|
    /// Cleans up after operations on reoccurring basis
 | 
						|
    /// </summary>
 | 
						|
    public class CleanupService : ICleanupService
 | 
						|
    {
 | 
						|
        private readonly ICacheService _cacheService;
 | 
						|
        private readonly ILogger<CleanupService> _logger;
 | 
						|
        private readonly IBackupService _backupService;
 | 
						|
 | 
						|
        public CleanupService(ICacheService cacheService, ILogger<CleanupService> logger, IBackupService backupService)
 | 
						|
        {
 | 
						|
            _cacheService = cacheService;
 | 
						|
            _logger = logger;
 | 
						|
            _backupService = backupService;
 | 
						|
        }
 | 
						|
 | 
						|
        [AutomaticRetry(Attempts = 3, LogEvents = false, OnAttemptsExceeded = AttemptsExceededAction.Fail)]
 | 
						|
        public void Cleanup()
 | 
						|
        {
 | 
						|
            _logger.LogInformation("Cleaning temp directory");
 | 
						|
            var tempDirectory = Path.Join(Directory.GetCurrentDirectory(), "temp");
 | 
						|
            DirectoryService.ClearDirectory(tempDirectory);
 | 
						|
            _logger.LogInformation("Cleaning cache directory");
 | 
						|
            _cacheService.Cleanup();
 | 
						|
            _logger.LogInformation("Cleaning old database backups");
 | 
						|
            _backupService.CleanupBackups();
 | 
						|
 | 
						|
        }
 | 
						|
    }
 | 
						|
} |