TTL Indexes
Esta página proporciona orientación sobre la configuración de índices TTL (Time-To-Live), que eliminan automáticamente los datos expirados después de una duración especificada.
Properties file
Algunas propiedades para el índice TTL son configurables y pueden establecerse usando el siguiente archivo de propiedades:
package com.iconsolutions.ipf.core.platform.scheduler.persistent.mongo;
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import java.time.Duration;
@Data
@ConfigurationProperties(prefix = "ipf.persistent.scheduler.ttl")
public class MongoIndexProperties {
/**
* The name of the field that will be used for TTL index
*/
private String timestampFieldName;
/**
* The duration a record is considered to be expired
*/
private Duration expiry;
/**
* a toggle to either create or not the indexes
*/
private Boolean createIndexesFlag;
}
-
timestampFieldName: campo usado para el índice ttl -
expire: Duración para que el registro se considere expirado -
createIndexesFlag: por defecto es true. Un interruptor para crear el índice
El siguiente ejemplo lo configura para expirar el campo deleteTime para registros de más de 1 hora:
ipf {
persistent {
scheduler {
ttl {
timestamp-field-name = "deleteTime"
expiry = 1h
create-indexes-flag = true
}
}
}
}
Index creation
La creación de índices puede deshabilitarse globalmente con:
ipf.mongodb.create-indexes=false
Para deshabilitar la indexación globalmente pero mantenerla para el scheduler, aplique lo siguiente, manteniendo el orden:
ipf.mongodb.create-indexes=false
ipf.persistent.scheduler.ttl.create-indexes-flag = true
El commit quorum puede controlarse de manera similar con:
ipf.persistent.scheduler.ttl.commit-quorum=1
O sobrescribirse globalmente con:
ipf.mongodb.commit-quorum=1