# CacheCleanupTask.java

    package com.yumu.noveltranslator.task;

    import com.yumu.noveltranslator.adapter.out.redis.TranslationCacheService;
    import lombok.RequiredArgsConstructor;
    import lombok.extern.slf4j.Slf4j;
    import org.springframework.scheduling.annotation.Scheduled;
    import org.springframework.stereotype.Component;

    /**
     * 定时清理过期数据库缓存记录
     */
    @Component
    @RequiredArgsConstructor
    @Slf4j
    public class CacheCleanupTask {

        private final TranslationCacheService translationCacheService;

        /**
         * 每 30 分钟清理一次数据库中的过期缓存
         */
        @Scheduled(fixedRate = 30 * 60 * 1000)
        public void cleanupExpiredCache() {
            log.info("定时任务触发: 清理过期数据库缓存");
            translationCacheService.cleanupExpiredCache();
        }
    }