SIENTIAPDE-1975: the gateway is the only writer that updates write_status
The Laborious no longer records OPC outcomes (it inserts the row as 'pending' and only publishes the commands), so the comments and docs that asked to keep a Laborious copy of the UPDATE in sync are updated. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -10,8 +10,8 @@ import ingestor.metrics as metrics
|
||||
_IDENTIFIER_RE = re.compile(r'\w+', re.ASCII)
|
||||
|
||||
# Worst-wins precedence of predictions.write_status (SIENTIAPDE-1975), from best to worst;
|
||||
# NULL, 'pending' and unknown values rank 0. Same rule as the Laborious
|
||||
# (laborious/utils/write_status.py): keep both in sync.
|
||||
# NULL, 'pending' and unknown values rank 0. The gateway is the only writer that updates the
|
||||
# column: the Laborious only sets the value of the rows it inserts ('pending', PI outcome).
|
||||
STATUS_RANK = {'ok': 1, 'error': 2, 'session_bad': 3}
|
||||
|
||||
|
||||
@@ -78,8 +78,9 @@ class DataSink:
|
||||
The row is found by timestamp + model_id. A prediction is written to several
|
||||
tags, each answered by its own command, so a better outcome never replaces a
|
||||
worse one: ``ok`` < ``error`` < ``session_bad``, and ``pending``/NULL are
|
||||
replaced by any answer. The Laborious runs the same statement for the outcomes it
|
||||
records itself (SIENTIAPDE-1975), so the order of the answers does not matter.
|
||||
replaced by any answer, so the order of the answers does not matter. Only the
|
||||
gateway updates the column (SIENTIAPDE-1975): the Laborious publishes the commands
|
||||
and sets ``pending`` (merged with its PI Web API outcome) on the row it inserts.
|
||||
|
||||
Never raises: a failure here must not reach the NATS callback nor hide the OPC
|
||||
write itself, which already happened. The outcome is logged and counted instead.
|
||||
|
||||
Reference in New Issue
Block a user