Skip to content

Commit 835eb82

Browse files
committed
Update battery_pool metric streamers to run forever.
This makes sure that when a streaming method for any of the battery pool metrics raises an exception, the method will be restarted. Signed-off-by: Sahas Subramanian <[email protected]>
1 parent 445c8f3 commit 835eb82

File tree

1 file changed

+5
-3
lines changed

1 file changed

+5
-3
lines changed

src/frequenz/sdk/timeseries/battery_pool/_methods.py

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212

1313
from frequenz.channels import Broadcast, Receiver
1414

15-
from ..._internal._asyncio import cancel_and_await
15+
from ..._internal._asyncio import cancel_and_await, run_forever
1616
from ..._internal._constants import RECEIVER_MAX_SIZE, WAIT_FOR_COMPONENT_DATA_SEC
1717
from ...microgrid._power_distributing._component_managers._battery_manager import (
1818
_get_battery_inverter_mappings,
@@ -104,8 +104,10 @@ def __init__(
104104
self._update_event = asyncio.Event()
105105
self._cached_metrics: dict[int, ComponentMetricsData] = {}
106106

107-
self._update_task = asyncio.create_task(self._update_and_notify())
108-
self._send_task = asyncio.create_task(self._send_on_update(min_update_interval))
107+
self._update_task = asyncio.create_task(run_forever(self._update_and_notify))
108+
self._send_task = asyncio.create_task(
109+
run_forever(lambda: self._send_on_update(min_update_interval))
110+
)
109111
self._pending_data_fetchers: set[asyncio.Task[ComponentMetricsData | None]] = (
110112
set()
111113
)

0 commit comments

Comments
 (0)