You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@unomi.apache.org by js...@apache.org on 2023/02/21 18:00:13 UTC

[unomi] 01/02: UNOMI-739 : add session and event purge property

This is an automated email from the ASF dual-hosted git repository.

jsinovassinnaik pushed a commit to branch UNOMI-739-update-purge-system
in repository https://gitbox.apache.org/repos/asf/unomi.git

commit b8cc54ae0bb2961c419ca12592c7ba63389c5eab
Author: jsinovassin <js...@jahia.com>
AuthorDate: Mon Feb 20 16:48:35 2023 +0100

    UNOMI-739 : add session and event purge property
---
 package/src/main/resources/etc/custom.system.properties        |  4 ++++
 .../unomi/services/impl/profiles/ProfileServiceImpl.java       | 10 ++++++++++
 services/src/main/resources/OSGI-INF/blueprint/blueprint.xml   |  4 ++++
 services/src/main/resources/org.apache.unomi.services.cfg      |  6 ++++++
 4 files changed, 24 insertions(+)

diff --git a/package/src/main/resources/etc/custom.system.properties b/package/src/main/resources/etc/custom.system.properties
index e8b049d40..59f187983 100644
--- a/package/src/main/resources/etc/custom.system.properties
+++ b/package/src/main/resources/etc/custom.system.properties
@@ -164,6 +164,10 @@ org.apache.unomi.profile.purge.inactiveTime=${env:UNOMI_PROFILE_PURGE_INACTIVETI
 org.apache.unomi.profile.purge.existTime=${env:UNOMI_PROFILE_PURGE_EXISTTIME:--1}
 # Purge all monthly indexes (sessions/events) that have been created for a specific number of months
 org.apache.unomi.monthly.index.purge.existTime=${env:UNOMI_MONTHLY_INDEX_PURGE_EXISTTIME:-12}
+# Purge sessions that have been created for a specific number of days
+org.apache.unomi.sessions.purge.existTime=${env:UNOMI_SESSIONS_PURGE_EXISTTIME:-}
+# Purge profiles that have been created for a specific number of days
+org.apache.unomi.events.purge.existTime=${env:UNOMI_EVENTS_PURGE_EXISTTIME:-}
 # Refresh Elasticsearch after saving a profile
 org.apache.unomi.profile.forceRefreshOnSave=${env:UNOMI_PROFILE_REFRESH_ON_SAVE:-false}
 # When performing segment updates, this controls the size of the scrolling query size used to iterate over all the
diff --git a/services/src/main/java/org/apache/unomi/services/impl/profiles/ProfileServiceImpl.java b/services/src/main/java/org/apache/unomi/services/impl/profiles/ProfileServiceImpl.java
index c12dc411f..36f904aef 100644
--- a/services/src/main/java/org/apache/unomi/services/impl/profiles/ProfileServiceImpl.java
+++ b/services/src/main/java/org/apache/unomi/services/impl/profiles/ProfileServiceImpl.java
@@ -204,6 +204,8 @@ public class ProfileServiceImpl implements ProfileService, SynchronousBundleList
     private Integer purgeProfileExistTime = 0;
     private Integer purgeProfileInactiveTime = 0;
     private Integer purgeSessionsAndEventsTime = 0;
+    private Integer purgeSessionExistTime = 0;
+    private Integer purgeEventExistTime = 0;
     private Integer purgeProfileInterval = 0;
     private TimerTask purgeTask = null;
     private long propertiesRefreshInterval = 10000;
@@ -299,6 +301,14 @@ public class ProfileServiceImpl implements ProfileService, SynchronousBundleList
         this.purgeProfileInterval = purgeProfileInterval;
     }
 
+    public void setPurgeSessionExistTime(Integer purgeSessionExistTime) {
+        this.purgeSessionExistTime = purgeSessionExistTime;
+    }
+
+    public void setPurgeEventExistTime(Integer purgeEventExistTime) {
+        this.purgeEventExistTime = purgeEventExistTime;
+    }
+
     private void schedulePropertyTypeLoad() {
         propertyTypeLoadTask = new TimerTask() {
             @Override
diff --git a/services/src/main/resources/OSGI-INF/blueprint/blueprint.xml b/services/src/main/resources/OSGI-INF/blueprint/blueprint.xml
index 3347588ab..f49f3c849 100644
--- a/services/src/main/resources/OSGI-INF/blueprint/blueprint.xml
+++ b/services/src/main/resources/OSGI-INF/blueprint/blueprint.xml
@@ -29,6 +29,8 @@
             <cm:property name="profile.purge.inactiveTime" value="180"/>
             <cm:property name="profile.purge.existTime" value="-1"/>
             <cm:property name="monthly.index.purge.existTime" value="12"/>
+            <cm:property name="session.purge.existTime" value="-1"/>
+            <cm:property name="event.purge.existTime" value="-1"/>
             <cm:property name="segment.update.batchSize" value="1000"/>
             <cm:property name="profile.forceRefreshOnSave" value="false"/>
             <cm:property name="definitions.refresh.interval" value="10000"/>
@@ -235,6 +237,8 @@
         <property name="purgeProfileInactiveTime" value="${services.profile.purge.inactiveTime}"/>
         <property name="purgeProfileExistTime" value="${services.profile.purge.existTime}"/>
         <property name="purgeSessionsAndEventsTime" value="${services.monthly.index.purge.existTime}"/>
+        <property name="purgeSessionExistTime" value="${services.session.purge.existTime}"/>
+        <property name="purgeEventExistTime" value="${services.event.purge.existTime}"/>
         <property name="forceRefreshOnSave" value="${services.profile.forceRefreshOnSave}"/>
         <property name="propertiesRefreshInterval" value="${services.properties.refresh.interval}"/>
         <property name="schedulerService" ref="schedulerServiceImpl"/>
diff --git a/services/src/main/resources/org.apache.unomi.services.cfg b/services/src/main/resources/org.apache.unomi.services.cfg
index 239305529..fbd9dff7d 100644
--- a/services/src/main/resources/org.apache.unomi.services.cfg
+++ b/services/src/main/resources/org.apache.unomi.services.cfg
@@ -30,6 +30,12 @@ profile.forceRefreshOnSave=${org.apache.unomi.profile.forceRefreshOnSave:-false}
 # Purge all monthly indexes (sessions/events) that have been created for a specific number of months
 monthly.index.purge.existTime=${org.apache.unomi.monthly.index.purge.existTime:-12}
 
+# Purge sessions that have been created for a specific number of days
+session.purge.existTime=${org.apache.unomi.session.purge.existTime:-}
+
+# Purge events that have been created for a specific number of days
+event.purge.existTime=${org.apache.unomi.event.purge.existTime:-}
+
 # When performing segment updates, this controls the size of the scrolling query size used to iterate over all the
 # profiles that need updating
 segment.update.batchSize=${org.apache.unomi.segment.update.batchSize:-1000}