Skip to content

Commit dfb8829

Browse files
committed
Use a timer for polling.
Signed-off-by: Leandro Lucarella <[email protected]>
1 parent d3b7932 commit dfb8829

File tree

1 file changed

+4
-3
lines changed

1 file changed

+4
-3
lines changed

src/frequenz/dispatch/actor.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
import grpc.aio
1212
from dateutil import rrule
1313
from frequenz.channels import Sender
14+
from frequenz.channels.util import Timer
1415
from frequenz.client.dispatch import Client
1516
from frequenz.client.dispatch.types import Dispatch, Frequency, Weekday
1617
from frequenz.sdk.actor import Actor
@@ -93,14 +94,14 @@ def __init__(
9394
self._microgrid_id = microgrid_id
9495
self._updated_dispatch_sender = updated_dispatch_sender
9596
self._ready_dispatch_sender = ready_dispatch_sender
96-
self._poll_interval = poll_interval
97+
self._poll_timer = Timer.timeout(poll_interval)
9798

9899
async def _run(self) -> None:
99100
"""Run the actor."""
101+
self._poll_timer.reset()
100102
try:
101-
while True:
103+
async for _ in self._poll_timer:
102104
await self._fetch()
103-
await asyncio.sleep(self._poll_interval.total_seconds())
104105
except asyncio.CancelledError:
105106
for task in self._scheduled.values():
106107
task.cancel()

0 commit comments

Comments
 (0)