每次更新完配置文件后,先清除定时函数。然后设置,每过5s执行一次清理函数
// 清除定时器 clearInterval(this.timeObj); var config = this.getConfig(); var keep_time = config.keep_time; var obj={ keep_time:keep_time, type:"ops" } // 定时器定时每5s执行一次 this.timeObj = setInterval(this.clean,5000, obj);keep_time:单位天,为设置的索引保存时间,定位到过期时间
var date = new Date(); var expiration = new Date(date); expiration.setDate(date.getDate() - keep_time); // 过期时间 var expirationTime = expiration.getFullYear() + '/' + (expiration.getMonth() + 1) + '/' + expiration.getDate();判定索引是否过期,并收集所有过期的索引。
const es=require("elasticsearch") const esClient= new es.Client({ host:'127.0.0.1:9200', log:'error' }) module.exports=esClient获取所有索引
const getIndex = function getIndex(index) { return esClient.indices.get({ index: index }) }判定索引是否过期,并收集所有过期的索引。
var indexs_delete = [] for (var index in results) { // 索引时间2020.09.03 var dateStr = index.substring(index.length - 10, index.length) // 索引时间 2020/09/03 var dateStr = dateStr.replace(/[.]/g, "\/") // 过期时间判定是否过期 if (dateStr < expirationTime) { indexs_delete.push(index) } }删除过期索引。
const indexDelete = function getIndex(index) { return esClient.indices.delete({ index: index }) }vscode打开代码。在esClient打上断点,打开main.js,按f5运行 demo代码下载