add:新增lucence日志清理
This commit is contained in:
@@ -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();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user