Browse Source

Add clear of agg data before subscription update

pull/7333/head
Andrii Shvaika 4 years ago
parent
commit
b1a234eba2
  1. 4
      application/src/main/java/org/thingsboard/server/service/subscription/DefaultTbEntityDataSubscriptionService.java
  2. 11
      common/data/src/main/java/org/thingsboard/server/common/data/query/EntityData.java

4
application/src/main/java/org/thingsboard/server/service/subscription/DefaultTbEntityDataSubscriptionService.java

@ -343,7 +343,7 @@ public class DefaultTbEntityDataSubscriptionService implements TbEntityDataSubsc
ctx.createTimeSeriesSubscriptions(lastTsEntityMap, startTs, endTs, true); ctx.createTimeSeriesSubscriptions(lastTsEntityMap, startTs, endTs, true);
} }
ctx.sendWsMsg(update); ctx.sendWsMsg(update);
entityDataList.forEach(ed -> ed.getTimeseries().clear()); entityDataList.forEach(EntityData::clearTsAndAggData);
} finally { } finally {
ctx.getWsLock().unlock(); ctx.getWsLock().unlock();
} }
@ -594,7 +594,7 @@ public class DefaultTbEntityDataSubscriptionService implements TbEntityDataSubsc
ctx.createTimeSeriesSubscriptions(lastTsEntityMap, cmd.getStartTs(), cmd.getEndTs()); ctx.createTimeSeriesSubscriptions(lastTsEntityMap, cmd.getStartTs(), cmd.getEndTs());
} }
ctx.sendWsMsg(update); ctx.sendWsMsg(update);
entityDataList.forEach(ed -> ed.getTimeseries().clear()); entityDataList.forEach(EntityData::clearTsAndAggData);
} finally { } finally {
ctx.getWsLock().unlock(); ctx.getWsLock().unlock();
} }

11
common/data/src/main/java/org/thingsboard/server/common/data/query/EntityData.java

@ -15,6 +15,7 @@
*/ */
package org.thingsboard.server.common.data.query; package org.thingsboard.server.common.data.query;
import com.fasterxml.jackson.annotation.JsonIgnore;
import lombok.Data; import lombok.Data;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.thingsboard.server.common.data.id.EntityId; import org.thingsboard.server.common.data.id.EntityId;
@ -33,4 +34,14 @@ public class EntityData {
public EntityData(EntityId entityId, Map<EntityKeyType, Map<String, TsValue>> latest, Map<String, TsValue[]> timeseries) { public EntityData(EntityId entityId, Map<EntityKeyType, Map<String, TsValue>> latest, Map<String, TsValue[]> timeseries) {
this(entityId, latest, timeseries, null); this(entityId, latest, timeseries, null);
} }
@JsonIgnore
public void clearTsAndAggData() {
if (timeseries != null) {
timeseries.clear();
}
if (aggLatest != null) {
aggLatest.clear();
}
}
} }

Loading…
Cancel
Save