Purga de Entradas de Pago
La purga se realiza como parte de la Mantenimiento del hogar.
La purga elimina documentos de la paymententries colección.
Este proceso asegura que las Entradas de Pago que están marcadas como 'hechas' sean eliminadas de la base de datos.
Para habilitar la purga, se requieren las siguientes acciones:
-
Crear índices TTL (Tiempo de Vida): Este paso es obligatorio, ya que permite que la base de datos purgue automáticamente los elementos en las colecciones. Sin estos índices, no se llevará a cabo ninguna purga.
-
[[_set_ttl_and_expiry Date_fields]]Conjunto
ttlyexpiryDatecampos: La aplicación misma establece elttlcampo (requerido para CosmosDB) y elexpiryDatecampo (requerido para MongoDB) cuando Mantenimiento del hogar is triggered. Estos campos determinan el período de retención para los elementos antes de que sean eliminados; el período de retención es configurable y se explica en detalle en el Tiempo de Vida (TTL) Configurable sección.
| Los índices TTL deben ser creados porque la base de datos depende de estos índices para purgar entradas. Sin índices TTL, las Entradas de Pago no serán eliminadas de la base de datos. |
Por defecto, todos los índices se crean automáticamente al iniciar la aplicación y admiten tanto MongoDB y Azure CosmosDB for MongoDB.
Para la creación manual de índices TTL, consulte Creación Manual de Índices TTL.
Para todos los índices, consulte Índices.
Configuración
La configuración predeterminada del Almacén de Pagos se detalla en el Configuración página. Puede anular los valores para adaptarlos a sus requisitos.
La configuración no es específica para la purga, pero para establecer la purga debe comprender la configuración.
Por ejemplo, si usted establece create-indexes a falso, pero aún requiere purga, entonces usted necesitaría crear su propio índice TTL.
Tiempo de Vida (TTL) Configurable
Las entradas de pago en el almacén de pagos tienen un TTL configurable.
El valor se establece utilizando el ipf.core.payment-warehouse.time-to-live clave de configuración.
El TTL se aplica durante el Mantenimiento del hogar operación.
El TTL se añadirá a la fecha y hora que markInstructionIsDone is triggered; esta fecha-hora calculada será la fecha-hora en la que la PaymentEntry expirará (será eliminada de la base de datos).
Por ejemplo, si el TTL es de 3d y el markInstructionIsDone se llama el 01/01/2025, entonces la PaymentEntry expirará (se eliminará de la base de datos) el 04/01/2025.
| El TTL predeterminado está configurado para 30 días. |
| TTL no hará nada si no se ha creado un índice TTL. |
Creación Manual de Índices TTL
MongoDB
Para MongoDB, cree índices TTL en el expiryDate campo, que indica la fecha exacta en la que un artículo debe ser eliminado.
Para más detalles, consulte Expire Documentos a una Hora Específica.
db.getCollection("paymententries").createIndex({ "expiryDate": 1 }, { expireAfterSeconds: 0 })
`ipf.core.payment-warehouse.time-to-live`se utiliza para calcular la fecha futura en la que se eliminará el documento.
Azure CosmosDB para MongoDB
Para Azure CosmosDB para MongoDB, cree índices TTL en el interno _ts campo, que contiene una marca de tiempo de la última modificación.
Además, los documentos necesitan un ttl campo entero que representa el período de retención en segundos.
Para más información, consulte Time para Vivir (TTL) en Azure Cosmos DB y Expire datos con Azure Cosmos DB’s API para MongoDB.
db.getCollection("paymententries").createIndex({"_ts":1}, {expireAfterSeconds: -1})
ipf.core.payment-warehouse.time-to-live`se convierte en segundos y establece el `ttl campo.
Azure CosmosDB para MongoDB purgará el documento después de este período.
¿Cómo deshabilitar la purga?
La purga puede deshabilitarse al no crear los índices TTL en paymententries colecciones.
Asegúrese de que la creación automática de índices esté desactivada configurando ipf.core.payment-warehouse.create-indexes to false, de lo contrario se crearán índices en el próximo inicio de la aplicación.
|
Al establecer ipf.core.payment-warehouse.create-indexes to false, el índices requerido para el rest del Almacén de Pagos deben ser creados manualmente.
|
Aunque se eliminen los índices, la aplicación continuará configurando ttl y expiryDate campos que no tienen efecto en la purga hasta que los índices sean (re)creados.
|