diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/quartz/task/AutoCleanLucenceLog.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/quartz/task/AutoCleanLucenceLog.java new file mode 100644 index 000000000..79bbe93d7 --- /dev/null +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/quartz/task/AutoCleanLucenceLog.java @@ -0,0 +1,56 @@ +package org.nl.system.service.quartz.task; + +import cn.hutool.core.date.DateTime; +import cn.hutool.core.date.DateUtil; +import com.alibaba.fastjson.JSONObject; +import lombok.extern.slf4j.Slf4j; +import org.apache.lucene.document.Document; +import org.apache.lucene.index.DirectoryReader; +import org.apache.lucene.index.IndexCommit; +import org.apache.lucene.index.IndexWriter; +import org.apache.lucene.index.Term; +import org.apache.lucene.search.*; +import org.apache.lucene.store.FSDirectory; +import org.apache.lucene.util.BytesRef; +import org.nl.acs.AcsConfig; +import org.nl.config.lucene.config.LuceneAppender; +import org.nl.system.service.param.ISysParamService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.config.YamlPropertiesFactoryBean; +import org.springframework.core.io.ClassPathResource; +import org.springframework.core.io.Resource; +import org.springframework.stereotype.Component; + +import java.nio.file.Paths; +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.util.*; + +/** + * @Author : TuQiang + * @create 2024/5/24 14:37 + */ +@Slf4j +@Component +public class AutoCleanLucenceLog { + @Autowired + private ISysParamService paramService; + + public void run() throws Exception { + IndexWriter writer = LuceneAppender.indexWriter; + //时间范围删除 + Calendar calendar = Calendar.getInstance(); + calendar.set(1970, 0, 1); + String startDate = DateUtil.format(calendar.getTime(), "yyyy-MM-dd HH:mm:ss.SSS"); + Date date = new Date(); + calendar.setTime(date); + int days = Integer.parseInt(paramService.findByCode(AcsConfig.AutoCleanDays).getValue()); + //取反 + int day = ~days + 1; + calendar.add(Calendar.DATE, day); + String endDate = DateUtil.format(calendar.getTime(), "yyyy-MM-dd HH:mm:ss.SSS"); + TermRangeQuery termRangeQuery = new TermRangeQuery("logTime", new BytesRef(startDate), new BytesRef(endDate), true, true); + writer.deleteDocuments(termRangeQuery); + writer.close(); + } +}