Commit 35626766a147577842261eda78d087b7a3af8606
Committed by
Andrew Shvayka
1 parent
c98a2d18
Refactor
Showing
1 changed file
with
8 additions
and
9 deletions
rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/profile/AlarmState.java
@@ -18,10 +18,10 @@ package org.thingsboard.rule.engine.profile; | @@ -18,10 +18,10 @@ package org.thingsboard.rule.engine.profile; | ||
18 | import com.fasterxml.jackson.databind.JsonNode; | 18 | import com.fasterxml.jackson.databind.JsonNode; |
19 | import com.fasterxml.jackson.databind.node.ObjectNode; | 19 | import com.fasterxml.jackson.databind.node.ObjectNode; |
20 | import com.google.common.util.concurrent.ListenableFuture; | 20 | import com.google.common.util.concurrent.ListenableFuture; |
21 | -import com.google.common.util.concurrent.MoreExecutors; | ||
22 | import lombok.Data; | 21 | import lombok.Data; |
23 | import lombok.extern.slf4j.Slf4j; | 22 | import lombok.extern.slf4j.Slf4j; |
24 | import org.apache.commons.lang3.StringUtils; | 23 | import org.apache.commons.lang3.StringUtils; |
24 | +import org.thingsboard.common.util.DonAsynchron; | ||
25 | import org.thingsboard.rule.engine.action.TbAlarmResult; | 25 | import org.thingsboard.rule.engine.action.TbAlarmResult; |
26 | import org.thingsboard.rule.engine.api.TbContext; | 26 | import org.thingsboard.rule.engine.api.TbContext; |
27 | import org.thingsboard.rule.engine.profile.state.PersistedAlarmRuleState; | 27 | import org.thingsboard.rule.engine.profile.state.PersistedAlarmRuleState; |
@@ -119,14 +119,13 @@ class AlarmState { | @@ -119,14 +119,13 @@ class AlarmState { | ||
119 | ListenableFuture<AlarmOperationResult> alarmClearOperationResult = ctx.getAlarmService().clearAlarmForResult( | 119 | ListenableFuture<AlarmOperationResult> alarmClearOperationResult = ctx.getAlarmService().clearAlarmForResult( |
120 | ctx.getTenantId(), currentAlarm.getId(), createDetails(clearState), System.currentTimeMillis() | 120 | ctx.getTenantId(), currentAlarm.getId(), createDetails(clearState), System.currentTimeMillis() |
121 | ); | 121 | ); |
122 | - alarmClearOperationResult.addListener(() -> { | ||
123 | - try { | ||
124 | - Alarm clearedAlarm = alarmClearOperationResult.get().getAlarm(); | ||
125 | - pushMsg(ctx, new TbAlarmResult(false, false, true, clearedAlarm)); | ||
126 | - } catch (Exception e) { | ||
127 | - throw new RuntimeException(e); | ||
128 | - } | ||
129 | - }, MoreExecutors.directExecutor()); | 122 | + DonAsynchron.withCallback(alarmClearOperationResult, |
123 | + result -> { | ||
124 | + pushMsg(ctx, new TbAlarmResult(false, false, true, result.getAlarm())); | ||
125 | + }, | ||
126 | + throwable -> { | ||
127 | + throw new RuntimeException(throwable); | ||
128 | + }); | ||
130 | currentAlarm = null; | 129 | currentAlarm = null; |
131 | } else if (AlarmEvalResult.FALSE.equals(evalResult)) { | 130 | } else if (AlarmEvalResult.FALSE.equals(evalResult)) { |
132 | stateUpdate = clearAlarmState(stateUpdate, clearState); | 131 | stateUpdate = clearAlarmState(stateUpdate, clearState); |