Added debug event ttl
This commit is contained in:
		
							parent
							
								
									12280f817a
								
							
						
					
					
						commit
						16a18638f2
					
				@ -166,6 +166,7 @@ cassandra:
 | 
			
		||||
    ts_key_value_partitioning: "${TS_KV_PARTITIONING:MONTHS}"
 | 
			
		||||
    ts_key_value_ttl: "${TS_KV_TTL:0}"
 | 
			
		||||
    events_ttl: "${TS_EVENTS_TTL:0}"
 | 
			
		||||
    debug_events_ttl: "${DEBUG_EVENTS_TTL:WEEK}"
 | 
			
		||||
    buffer_size: "${CASSANDRA_QUERY_BUFFER_SIZE:200000}"
 | 
			
		||||
    concurrent_limit: "${CASSANDRA_QUERY_CONCURRENT_LIMIT:1000}"
 | 
			
		||||
    permit_max_wait_time: "${PERMIT_MAX_WAIT_TIME:120000}"
 | 
			
		||||
 | 
			
		||||
@ -26,6 +26,7 @@ import lombok.extern.slf4j.Slf4j;
 | 
			
		||||
import org.apache.commons.lang3.StringUtils;
 | 
			
		||||
import org.springframework.beans.factory.annotation.Value;
 | 
			
		||||
import org.springframework.stereotype.Component;
 | 
			
		||||
import org.thingsboard.server.common.data.DataConstants;
 | 
			
		||||
import org.thingsboard.server.common.data.Event;
 | 
			
		||||
import org.thingsboard.server.common.data.id.EntityId;
 | 
			
		||||
import org.thingsboard.server.common.data.id.EventId;
 | 
			
		||||
@ -69,6 +70,9 @@ public class CassandraBaseEventDao extends CassandraAbstractSearchTimeDao<EventE
 | 
			
		||||
    @Value("${cassandra.query.events_ttl:0}")
 | 
			
		||||
    private int eventsTtl;
 | 
			
		||||
 | 
			
		||||
    @Value("${cassandra.query.debug_events_ttl}")
 | 
			
		||||
    private String debugEventsTtl;
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public Event save(TenantId tenantId, Event event) {
 | 
			
		||||
        try {
 | 
			
		||||
@ -188,11 +192,15 @@ public class CassandraBaseEventDao extends CassandraAbstractSearchTimeDao<EventE
 | 
			
		||||
                .value(ModelConstants.EVENT_TYPE_PROPERTY, entity.getEventType())
 | 
			
		||||
                .value(ModelConstants.EVENT_UID_PROPERTY, entity.getEventUid())
 | 
			
		||||
                .value(ModelConstants.EVENT_BODY_PROPERTY, entity.getBody());
 | 
			
		||||
 | 
			
		||||
        if (ifNotExists) {
 | 
			
		||||
            insert = insert.ifNotExists();
 | 
			
		||||
        }
 | 
			
		||||
        if(ttl > 0){
 | 
			
		||||
            insert.using(ttl(ttl));
 | 
			
		||||
 | 
			
		||||
        int selectedTtl = entity.getEventType().matches(DataConstants.DEBUG_RULE_NODE) ? toMillis(debugEventsTtl) : ttl;
 | 
			
		||||
 | 
			
		||||
        if(selectedTtl > 0){
 | 
			
		||||
            insert.using(ttl(selectedTtl));
 | 
			
		||||
        }
 | 
			
		||||
        ResultSetFuture resultSetFuture = executeAsyncWrite(tenantId, insert);
 | 
			
		||||
        return Futures.transform(resultSetFuture, rs -> {
 | 
			
		||||
@ -203,4 +211,14 @@ public class CassandraBaseEventDao extends CassandraAbstractSearchTimeDao<EventE
 | 
			
		||||
            }
 | 
			
		||||
        });
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private int toMillis(String timeInterval) {
 | 
			
		||||
        switch (timeInterval) {
 | 
			
		||||
            case "DAY":
 | 
			
		||||
                return 24 * 3600 * 1000;
 | 
			
		||||
            case "WEEK":
 | 
			
		||||
                return 7 * 24 * 3600 * 1000;
 | 
			
		||||
        }
 | 
			
		||||
        return 0;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user