Merge pull request #5659 from desoliture1/rpc_refactor
[3.3.3] Add rpc response error when retry attempts ended
This commit is contained in:
commit
316b8b1406
@ -596,6 +596,7 @@ class DeviceActorMessageProcessor extends AbstractContextAwareMsgProcessor {
|
|||||||
ToDeviceRpcRequestMetadata md = toDeviceRpcPendingMap.get(responseMsg.getRequestId());
|
ToDeviceRpcRequestMetadata md = toDeviceRpcPendingMap.get(responseMsg.getRequestId());
|
||||||
|
|
||||||
if (md != null) {
|
if (md != null) {
|
||||||
|
JsonNode response = null;
|
||||||
if (status.equals(RpcStatus.DELIVERED)) {
|
if (status.equals(RpcStatus.DELIVERED)) {
|
||||||
if (md.getMsg().getMsg().isOneway()) {
|
if (md.getMsg().getMsg().isOneway()) {
|
||||||
toDeviceRpcPendingMap.remove(responseMsg.getRequestId());
|
toDeviceRpcPendingMap.remove(responseMsg.getRequestId());
|
||||||
@ -611,13 +612,14 @@ class DeviceActorMessageProcessor extends AbstractContextAwareMsgProcessor {
|
|||||||
if (maxRpcRetries <= md.getRetries()) {
|
if (maxRpcRetries <= md.getRetries()) {
|
||||||
toDeviceRpcPendingMap.remove(responseMsg.getRequestId());
|
toDeviceRpcPendingMap.remove(responseMsg.getRequestId());
|
||||||
status = RpcStatus.FAILED;
|
status = RpcStatus.FAILED;
|
||||||
|
response = JacksonUtil.newObjectNode().put("error", "There was a Timeout and all retry attempts have been exhausted. Retry attempts set: " + maxRpcRetries);
|
||||||
} else {
|
} else {
|
||||||
md.setRetries(md.getRetries() + 1);
|
md.setRetries(md.getRetries() + 1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (md.getMsg().getMsg().isPersisted()) {
|
if (md.getMsg().getMsg().isPersisted()) {
|
||||||
systemContext.getTbRpcService().save(tenantId, new RpcId(rpcId), status, null);
|
systemContext.getTbRpcService().save(tenantId, new RpcId(rpcId), status, response);
|
||||||
}
|
}
|
||||||
if (status != RpcStatus.SENT) {
|
if (status != RpcStatus.SENT) {
|
||||||
sendNextPendingRequest(context);
|
sendNextPendingRequest(context);
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user