diff --git a/application/src/main/java/org/thingsboard/server/actors/ActorSystemContext.java b/application/src/main/java/org/thingsboard/server/actors/ActorSystemContext.java index 88c1e02507..07ce35d116 100644 --- a/application/src/main/java/org/thingsboard/server/actors/ActorSystemContext.java +++ b/application/src/main/java/org/thingsboard/server/actors/ActorSystemContext.java @@ -400,9 +400,9 @@ public class ActorSystemContext { @Getter private String debugPerTenantLimitsConfiguration; - @Value("${actors.rpc.sequence.enabled:false}") + @Value("${actors.rpc.sequential:false}") @Getter - private boolean rpcSequenceEnabled; + private boolean rpcSequential; @Value("${actors.rpc.max_retries:5}") @Getter diff --git a/application/src/main/java/org/thingsboard/server/actors/device/DeviceActorMessageProcessor.java b/application/src/main/java/org/thingsboard/server/actors/device/DeviceActorMessageProcessor.java index 50b70225e1..d16c1f10fd 100644 --- a/application/src/main/java/org/thingsboard/server/actors/device/DeviceActorMessageProcessor.java +++ b/application/src/main/java/org/thingsboard/server/actors/device/DeviceActorMessageProcessor.java @@ -122,7 +122,7 @@ class DeviceActorMessageProcessor extends AbstractContextAwareMsgProcessor { private final Map attributeSubscriptions; private final Map rpcSubscriptions; private final Map toDeviceRpcPendingMap; - private final boolean rpcSequenceEnabled; + private final boolean rpcSequential; private int rpcSeq = 0; private String deviceName; @@ -134,7 +134,7 @@ class DeviceActorMessageProcessor extends AbstractContextAwareMsgProcessor { super(systemContext); this.tenantId = tenantId; this.deviceId = deviceId; - this.rpcSequenceEnabled = systemContext.isRpcSequenceEnabled(); + this.rpcSequential = systemContext.isRpcSequential(); this.attributeSubscriptions = new HashMap<>(); this.rpcSubscriptions = new HashMap<>(); this.toDeviceRpcPendingMap = new LinkedHashMap<>(); @@ -233,7 +233,7 @@ class DeviceActorMessageProcessor extends AbstractContextAwareMsgProcessor { } private boolean isSendNewRpcAvailable() { - return !rpcSequenceEnabled || toDeviceRpcPendingMap.values().stream().filter(md -> !md.isDelivered()).findAny().isEmpty(); + return !rpcSequential || toDeviceRpcPendingMap.values().stream().filter(md -> !md.isDelivered()).findAny().isEmpty(); } private Rpc createRpc(ToDeviceRpcRequest request, RpcStatus status) { @@ -332,7 +332,7 @@ class DeviceActorMessageProcessor extends AbstractContextAwareMsgProcessor { } Set sentOneWayIds = new HashSet<>(); - if (rpcSequenceEnabled) { + if (rpcSequential) { getFirstRpc().ifPresent(processPendingRpc(context, sessionId, nodeId, sentOneWayIds)); } else if (sessionType == SessionType.ASYNC) { toDeviceRpcPendingMap.entrySet().forEach(processPendingRpc(context, sessionId, nodeId, sentOneWayIds)); @@ -348,7 +348,7 @@ class DeviceActorMessageProcessor extends AbstractContextAwareMsgProcessor { } private void sendNextPendingRequest(TbActorCtx context) { - if (rpcSequenceEnabled) { + if (rpcSequential) { rpcSubscriptions.forEach((id, s) -> sendPendingRequests(context, id, s.getNodeId())); } } @@ -357,7 +357,7 @@ class DeviceActorMessageProcessor extends AbstractContextAwareMsgProcessor { return entry -> { ToDeviceRpcRequest request = entry.getValue().getMsg().getMsg(); ToDeviceRpcRequestBody body = request.getBody(); - if (request.isOneway() && !rpcSequenceEnabled) { + if (request.isOneway() && !rpcSequential) { sentOneWayIds.add(entry.getKey()); systemContext.getTbCoreDeviceRpcService().processRpcResponseFromDeviceActor(new FromDeviceRpcResponse(request.getId(), null, null)); } @@ -599,7 +599,7 @@ class DeviceActorMessageProcessor extends AbstractContextAwareMsgProcessor { if (status.equals(RpcStatus.DELIVERED)) { if (md.getMsg().getMsg().isOneway()) { toDeviceRpcPendingMap.remove(responseMsg.getRequestId()); - if (rpcSequenceEnabled) { + if (rpcSequential) { systemContext.getTbCoreDeviceRpcService().processRpcResponseFromDeviceActor(new FromDeviceRpcResponse(rpcId, null, null)); } } else { diff --git a/application/src/main/resources/thingsboard.yml b/application/src/main/resources/thingsboard.yml index 45dc974802..7fc70e9fb1 100644 --- a/application/src/main/resources/thingsboard.yml +++ b/application/src/main/resources/thingsboard.yml @@ -328,8 +328,7 @@ actors: duration: "${ACTORS_RULE_TRANSACTION_DURATION:60000}" rpc: max_retries: "${ACTORS_RPC_MAX_RETRIES:5}" - sequence: - enabled: "${ACTORS_RPC_SEQUENCE_ENABLED:false}" + sequential: "${ACTORS_RPC_SEQUENTIAL:false}" statistics: # Enable/disable actor statistics enabled: "${ACTORS_STATISTICS_ENABLED:true}" diff --git a/application/src/test/resources/application-test.properties b/application/src/test/resources/application-test.properties index cb412f77ac..f65bce749e 100644 --- a/application/src/test/resources/application-test.properties +++ b/application/src/test/resources/application-test.properties @@ -6,4 +6,5 @@ edges.storage.sleep_between_batches=500 transport.lwm2m.server.security.key_alias=server transport.lwm2m.server.security.key_password=server transport.lwm2m.bootstrap.security.key_alias=server -transport.lwm2m.bootstrap.security.key_password=server \ No newline at end of file +transport.lwm2m.bootstrap.security.key_password=server +actors.rpc.sequential=true \ No newline at end of file