Added debug event ttl

This commit is contained in:
basanets 2019-04-19 11:06:28 +03:00
parent 12280f817a
commit 16a18638f2
2 changed files with 21 additions and 2 deletions

View File

@ -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}"

View File

@ -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;
}
}