Merge pull request #13570 from thingsboard/fix/oom
Memory usage improvements
This commit is contained in:
commit
a55f4d386a
@ -237,8 +237,14 @@ public final class TbActorMailbox implements TbActorCtx {
|
|||||||
try {
|
try {
|
||||||
ready.set(NOT_READY);
|
ready.set(NOT_READY);
|
||||||
actor.destroy(stopReason, cause);
|
actor.destroy(stopReason, cause);
|
||||||
highPriorityMsgs.forEach(msg -> msg.onTbActorStopped(stopReason));
|
highPriorityMsgs.removeIf(msg -> {
|
||||||
normalPriorityMsgs.forEach(msg -> msg.onTbActorStopped(stopReason));
|
msg.onTbActorStopped(stopReason);
|
||||||
|
return true;
|
||||||
|
});
|
||||||
|
normalPriorityMsgs.removeIf(msg -> {
|
||||||
|
msg.onTbActorStopped(stopReason);
|
||||||
|
return true;
|
||||||
|
});
|
||||||
} catch (Throwable t) {
|
} catch (Throwable t) {
|
||||||
log.warn("[{}] Failed to destroy actor: ", selfId, t);
|
log.warn("[{}] Failed to destroy actor: ", selfId, t);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -32,7 +32,7 @@ public class AdminSettings extends BaseData<AdminSettingsId> implements HasTenan
|
|||||||
@NoXss
|
@NoXss
|
||||||
@Length(fieldName = "key")
|
@Length(fieldName = "key")
|
||||||
private String key;
|
private String key;
|
||||||
private transient JsonNode jsonValue;
|
private JsonNode jsonValue;
|
||||||
|
|
||||||
public AdminSettings() {
|
public AdminSettings() {
|
||||||
super();
|
super();
|
||||||
|
|||||||
@ -53,7 +53,7 @@ public abstract class BaseData<I extends UUIDBased> extends IdBased<I> implement
|
|||||||
public int hashCode() {
|
public int hashCode() {
|
||||||
final int prime = 31;
|
final int prime = 31;
|
||||||
int result = super.hashCode();
|
int result = super.hashCode();
|
||||||
result = prime * result + (int) (createdTime ^ (createdTime >>> 32));
|
result = prime * result + Long.hashCode(createdTime);
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -62,9 +62,7 @@ public class RuleNode extends BaseDataWithAdditionalInfo<RuleNodeId> implements
|
|||||||
@Schema(description = "Version of rule node configuration. ", example = "0")
|
@Schema(description = "Version of rule node configuration. ", example = "0")
|
||||||
private int configurationVersion;
|
private int configurationVersion;
|
||||||
@Schema(description = "JSON with the rule node configuration. Structure depends on the rule node implementation.", implementation = JsonNode.class)
|
@Schema(description = "JSON with the rule node configuration. Structure depends on the rule node implementation.", implementation = JsonNode.class)
|
||||||
private transient JsonNode configuration;
|
private JsonNode configuration;
|
||||||
@JsonIgnore
|
|
||||||
private byte[] configurationBytes;
|
|
||||||
|
|
||||||
private RuleNodeId externalId;
|
private RuleNodeId externalId;
|
||||||
|
|
||||||
@ -92,14 +90,6 @@ public class RuleNode extends BaseDataWithAdditionalInfo<RuleNodeId> implements
|
|||||||
return name;
|
return name;
|
||||||
}
|
}
|
||||||
|
|
||||||
public JsonNode getConfiguration() {
|
|
||||||
return BaseDataWithAdditionalInfo.getJson(() -> configuration, () -> configurationBytes);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setConfiguration(JsonNode data) {
|
|
||||||
setJson(data, json -> this.configuration = json, bytes -> this.configurationBytes = bytes);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Schema(description = "JSON object with the Rule Node Id. " +
|
@Schema(description = "JSON object with the Rule Node Id. " +
|
||||||
"Specify this field to update the Rule Node. " +
|
"Specify this field to update the Rule Node. " +
|
||||||
"Referencing non-existing Rule Node Id will cause error. " +
|
"Referencing non-existing Rule Node Id will cause error. " +
|
||||||
|
|||||||
@ -15,20 +15,15 @@
|
|||||||
*/
|
*/
|
||||||
package org.thingsboard.server.common.data.settings;
|
package org.thingsboard.server.common.data.settings;
|
||||||
|
|
||||||
import com.fasterxml.jackson.annotation.JsonIgnore;
|
|
||||||
import com.fasterxml.jackson.databind.JsonNode;
|
import com.fasterxml.jackson.databind.JsonNode;
|
||||||
import io.swagger.v3.oas.annotations.media.Schema;
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.ToString;
|
|
||||||
import org.thingsboard.server.common.data.id.UserId;
|
import org.thingsboard.server.common.data.id.UserId;
|
||||||
import org.thingsboard.server.common.data.validation.Length;
|
import org.thingsboard.server.common.data.validation.Length;
|
||||||
import org.thingsboard.server.common.data.validation.NoXss;
|
import org.thingsboard.server.common.data.validation.NoXss;
|
||||||
|
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
|
|
||||||
import static org.thingsboard.server.common.data.BaseDataWithAdditionalInfo.getJson;
|
|
||||||
import static org.thingsboard.server.common.data.BaseDataWithAdditionalInfo.setJson;
|
|
||||||
|
|
||||||
@Schema
|
@Schema
|
||||||
@Data
|
@Data
|
||||||
public class UserSettings implements Serializable {
|
public class UserSettings implements Serializable {
|
||||||
@ -46,17 +41,6 @@ public class UserSettings implements Serializable {
|
|||||||
@Schema(description = "JSON object with user settings.", implementation = com.fasterxml.jackson.databind.JsonNode.class)
|
@Schema(description = "JSON object with user settings.", implementation = com.fasterxml.jackson.databind.JsonNode.class)
|
||||||
@NoXss
|
@NoXss
|
||||||
@Length(fieldName = "settings", max = 100000)
|
@Length(fieldName = "settings", max = 100000)
|
||||||
private transient JsonNode settings;
|
private JsonNode settings;
|
||||||
|
|
||||||
@JsonIgnore
|
|
||||||
@ToString.Exclude
|
|
||||||
private byte[] settingsBytes;
|
|
||||||
|
|
||||||
public JsonNode getSettings() {
|
|
||||||
return getJson(() -> settings, () -> settingsBytes);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setSettings(JsonNode settings) {
|
|
||||||
setJson(settings, json -> this.settings = json, bytes -> this.settingsBytes = bytes);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -21,15 +21,17 @@ import com.fasterxml.jackson.databind.JsonNode;
|
|||||||
import com.fasterxml.jackson.databind.node.ObjectNode;
|
import com.fasterxml.jackson.databind.node.ObjectNode;
|
||||||
import io.swagger.v3.oas.annotations.media.Schema;
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
import org.thingsboard.server.common.data.id.WidgetTypeId;
|
import org.thingsboard.server.common.data.id.WidgetTypeId;
|
||||||
|
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
|
|
||||||
|
@EqualsAndHashCode(callSuper = true)
|
||||||
@Data
|
@Data
|
||||||
public class WidgetType extends BaseWidgetType {
|
public class WidgetType extends BaseWidgetType {
|
||||||
|
|
||||||
@Schema(description = "Complex JSON object that describes the widget type", accessMode = Schema.AccessMode.READ_ONLY)
|
@Schema(description = "Complex JSON object that describes the widget type", accessMode = Schema.AccessMode.READ_ONLY)
|
||||||
private transient JsonNode descriptor;
|
private JsonNode descriptor;
|
||||||
|
|
||||||
public WidgetType() {
|
public WidgetType() {
|
||||||
super();
|
super();
|
||||||
|
|||||||
@ -26,7 +26,7 @@ import java.security.GeneralSecurityException;
|
|||||||
import java.security.KeyStore;
|
import java.security.KeyStore;
|
||||||
|
|
||||||
@Data
|
@Data
|
||||||
@EqualsAndHashCode(callSuper = false)
|
@EqualsAndHashCode(callSuper = true)
|
||||||
public class KeystoreSslCredentials extends AbstractSslCredentials {
|
public class KeystoreSslCredentials extends AbstractSslCredentials {
|
||||||
|
|
||||||
private String type;
|
private String type;
|
||||||
|
|||||||
@ -46,7 +46,7 @@ import java.util.List;
|
|||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
@Data
|
@Data
|
||||||
@EqualsAndHashCode(callSuper = false)
|
@EqualsAndHashCode(callSuper = true)
|
||||||
public class PemSslCredentials extends AbstractSslCredentials {
|
public class PemSslCredentials extends AbstractSslCredentials {
|
||||||
|
|
||||||
private static final String DEFAULT_KEY_ALIAS = "server";
|
private static final String DEFAULT_KEY_ALIAS = "server";
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user