Save attributes strategies: add advanced mode warning text; minor title correction
This commit is contained in:
parent
ed6262ba9f
commit
2b7deda3d1
@ -18,7 +18,7 @@
|
||||
<section [formGroup]="processingForm" class="tb-form-panel no-border no-padding">
|
||||
<tb-example-hint
|
||||
[hintText]="'rule-node-config.save-time-series.advanced-settings-hint'"
|
||||
[popupHelpLink]="timeseries ? 'rulenode/save_timeseries_node_advanced' : null"
|
||||
[popupHelpLink]="timeseries ? 'rulenode/save_timeseries_node_advanced' : 'rulenode/save_attributes_node_advanced'"
|
||||
>
|
||||
</tb-example-hint>
|
||||
<tb-advanced-processing-setting-row *ngIf="timeseries"
|
||||
@ -27,7 +27,7 @@
|
||||
></tb-advanced-processing-setting-row>
|
||||
<tb-advanced-processing-setting-row *ngIf="attributes"
|
||||
formControlName="attributes"
|
||||
title="{{ 'rule-node-config.save-attribute.attribute' | translate }}"
|
||||
title="{{ 'rule-node-config.save-attribute.attributes' | translate }}"
|
||||
></tb-advanced-processing-setting-row>
|
||||
<tb-advanced-processing-setting-row *ngIf="latest"
|
||||
formControlName="latest"
|
||||
|
||||
@ -0,0 +1,32 @@
|
||||
#### Potential unexpected behavior with mixed processing strategies
|
||||
|
||||
When configuring the processing strategies, certain combinations can lead to unexpected behavior. Consider the following scenarios:
|
||||
|
||||
- **Skipping database storage**
|
||||
|
||||
Choosing to disable attribute persistence introduces the risk of having only partial data available.
|
||||
For example, if a message is processed solely for real-time notifications via WebSockets and not stored in the database, then attribute queries might not reflect the data visible on the dashboard.
|
||||
|
||||
- **Disabling WebSocket (WS) updates**
|
||||
|
||||
If WS updates are disabled, any changes to the attribute data won’t be pushed to dashboards (or other WS subscriptions).
|
||||
This means that even if a database is updated, dashboards may not display the updated data until browser page is reloaded.
|
||||
|
||||
- **Skipping calculated field recalculation**
|
||||
|
||||
If attribute data is saved to the database while bypassing calculated field recalculation, the aggregated value may not update to reflect the saved data.
|
||||
Conversely, if the calculated field is recalculated with new data but the corresponding attribute value is not persisted in the database, the calculated field's value might include data that isn’t stored.
|
||||
|
||||
- **Different deduplication intervals across actions**
|
||||
|
||||
When you configure different deduplication intervals for actions, the same incoming message might be processed differently for each action.
|
||||
For example, a message might be stored immediately in the Attributes table (if set to *On every message*) while not being present on a dashboard because its deduplication interval hasn’t elapsed.
|
||||
|
||||
- **Deduplication cache clearing**
|
||||
|
||||
The deduplication mechanism uses a cache to track processed messages within each interval.
|
||||
For performance and system stability reasons, this cache is periodically cleared.
|
||||
As a result, if a cache entry is removed during the deduplication period, messages from the same originator may be processed more than once within that interval.
|
||||
This means deduplication should be used as a performance optimization rather than an absolute guarantee of single processing per interval.
|
||||
|
||||
We recommend using deduplication only when the occasional repeated processing is acceptable and won't cause system correctness issue or data inconsistencies.
|
||||
@ -5275,7 +5275,7 @@
|
||||
"deduplicate": "Deduplicate",
|
||||
"web-sockets-only": "WebSockets only"
|
||||
},
|
||||
"attribute": "Attribute"
|
||||
"attributes": "Attributes"
|
||||
},
|
||||
"key-val": {
|
||||
"key": "Key",
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user