Merge branch 'master' of github.com:thingsboard/thingsboard
This commit is contained in:
commit
e563939c66
@ -93,6 +93,7 @@ public class BaseRuleChainTransactionService implements RuleChainTransactionServ
|
|||||||
TbTransactionTask transactionTask = new TbTransactionTask(msg, onStart, onEnd, onFailure, System.currentTimeMillis() + duration);
|
TbTransactionTask transactionTask = new TbTransactionTask(msg, onStart, onEnd, onFailure, System.currentTimeMillis() + duration);
|
||||||
int queueSize = queue.size();
|
int queueSize = queue.size();
|
||||||
if (queueSize >= finalQueueSize) {
|
if (queueSize >= finalQueueSize) {
|
||||||
|
log.trace("Queue has no space: {}", transactionTask);
|
||||||
executeOnFailure(transactionTask.getOnFailure(), "Queue has no space!");
|
executeOnFailure(transactionTask.getOnFailure(), "Queue has no space!");
|
||||||
} else {
|
} else {
|
||||||
addMsgToQueues(queue, transactionTask);
|
addMsgToQueues(queue, transactionTask);
|
||||||
|
|||||||
@ -250,9 +250,9 @@ actors:
|
|||||||
error_persist_frequency: "${ACTORS_RULE_NODE_ERROR_FREQUENCY:3000}"
|
error_persist_frequency: "${ACTORS_RULE_NODE_ERROR_FREQUENCY:3000}"
|
||||||
transaction:
|
transaction:
|
||||||
# Size of queues which store messages for transaction rule nodes
|
# Size of queues which store messages for transaction rule nodes
|
||||||
queue_size: "${ACTORS_RULE_TRANSACTION_QUEUE_SIZE:20}"
|
queue_size: "${ACTORS_RULE_TRANSACTION_QUEUE_SIZE:15000}"
|
||||||
# Time in milliseconds for transaction to complete
|
# Time in milliseconds for transaction to complete
|
||||||
duration: "${ACTORS_RULE_TRANSACTION_DURATION:15000}"
|
duration: "${ACTORS_RULE_TRANSACTION_DURATION:60000}"
|
||||||
statistics:
|
statistics:
|
||||||
# Enable/disable actor statistics
|
# Enable/disable actor statistics
|
||||||
enabled: "${ACTORS_STATISTICS_ENABLED:true}"
|
enabled: "${ACTORS_STATISTICS_ENABLED:true}"
|
||||||
|
|||||||
@ -22,6 +22,7 @@ import org.thingsboard.server.common.data.kv.BaseAttributeKvEntry;
|
|||||||
import org.thingsboard.server.common.data.kv.BasicTsKvEntry;
|
import org.thingsboard.server.common.data.kv.BasicTsKvEntry;
|
||||||
import org.thingsboard.server.common.data.kv.BooleanDataEntry;
|
import org.thingsboard.server.common.data.kv.BooleanDataEntry;
|
||||||
import org.thingsboard.server.common.data.kv.DoubleDataEntry;
|
import org.thingsboard.server.common.data.kv.DoubleDataEntry;
|
||||||
|
import org.thingsboard.server.common.data.kv.JsonDataEntry;
|
||||||
import org.thingsboard.server.common.data.kv.KvEntry;
|
import org.thingsboard.server.common.data.kv.KvEntry;
|
||||||
import org.thingsboard.server.common.data.kv.LongDataEntry;
|
import org.thingsboard.server.common.data.kv.LongDataEntry;
|
||||||
import org.thingsboard.server.common.data.kv.StringDataEntry;
|
import org.thingsboard.server.common.data.kv.StringDataEntry;
|
||||||
@ -73,15 +74,28 @@ public class RestJsonConverter {
|
|||||||
if (!value.isObject()) {
|
if (!value.isObject()) {
|
||||||
if (value.isBoolean()) {
|
if (value.isBoolean()) {
|
||||||
return new BooleanDataEntry(key, value.asBoolean());
|
return new BooleanDataEntry(key, value.asBoolean());
|
||||||
} else if (value.isDouble()) {
|
} else if (value.isNumber()) {
|
||||||
return new DoubleDataEntry(key, value.asDouble());
|
return parseNumericValue(key, value);
|
||||||
} else if (value.isLong()) {
|
} else if (value.isTextual()) {
|
||||||
return new LongDataEntry(key, value.asLong());
|
|
||||||
} else {
|
|
||||||
return new StringDataEntry(key, value.asText());
|
return new StringDataEntry(key, value.asText());
|
||||||
|
} else {
|
||||||
|
throw new RuntimeException(CAN_T_PARSE_VALUE + value);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
throw new RuntimeException(CAN_T_PARSE_VALUE + value);
|
return new JsonDataEntry(key, value.toString());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static KvEntry parseNumericValue(String key, JsonNode value) {
|
||||||
|
if (value.isFloatingPointNumber()) {
|
||||||
|
return new DoubleDataEntry(key, value.asDouble());
|
||||||
|
} else {
|
||||||
|
try {
|
||||||
|
long longValue = Long.parseLong(value.toString());
|
||||||
|
return new LongDataEntry(key, longValue);
|
||||||
|
} catch (NumberFormatException e) {
|
||||||
|
throw new IllegalArgumentException("Big integer values are not supported!");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user