Skip to content

Commit 8d2f45c

Browse files
committed
fixup! Add DataSourcingActor
Call `_update_streams` only if a request is received for a metric that's not being handled already. Signed-off-by: Sahas Subramanian <[email protected]>
1 parent bcece43 commit 8d2f45c

File tree

1 file changed

+8
-1
lines changed

1 file changed

+8
-1
lines changed

src/frequenz/sdk/actor/data_sourcing/microgrid_api_source.py

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -351,7 +351,14 @@ async def add_metric(self, request: ComponentMetricRequest) -> None:
351351

352352
self._req_streaming_metrics.setdefault(comp_id, {}).setdefault(
353353
request.metric_id, []
354-
).append(request)
354+
)
355+
356+
for existing_request in self._req_streaming_metrics[comp_id][request.metric_id]:
357+
if existing_request.get_channel_name() == request.get_channel_name():
358+
# the requested metric is already being handled, so nothing to do.
359+
return
360+
361+
self._req_streaming_metrics[comp_id][request.metric_id].append(request)
355362

356363
await self._update_streams(
357364
comp_id,

0 commit comments

Comments
 (0)