File tree Expand file tree Collapse file tree 1 file changed +4
-3
lines changed Expand file tree Collapse file tree 1 file changed +4
-3
lines changed Original file line number Diff line number Diff line change 11
11
import grpc .aio
12
12
from dateutil import rrule
13
13
from frequenz .channels import Sender
14
+ from frequenz .channels .util import Timer
14
15
from frequenz .client .dispatch import Client
15
16
from frequenz .client .dispatch .types import Dispatch , Frequency , Weekday
16
17
from frequenz .sdk .actor import Actor
@@ -93,14 +94,14 @@ def __init__(
93
94
self ._microgrid_id = microgrid_id
94
95
self ._updated_dispatch_sender = updated_dispatch_sender
95
96
self ._ready_dispatch_sender = ready_dispatch_sender
96
- self ._poll_interval = poll_interval
97
+ self ._poll_timer = Timer . timeout ( poll_interval )
97
98
98
99
async def _run (self ) -> None :
99
100
"""Run the actor."""
101
+ self ._poll_timer .reset ()
100
102
try :
101
- while True :
103
+ async for _ in self . _poll_timer :
102
104
await self ._fetch ()
103
- await asyncio .sleep (self ._poll_interval .total_seconds ())
104
105
except asyncio .CancelledError :
105
106
for task in self ._scheduled .values ():
106
107
task .cancel ()
You can’t perform that action at this time.
0 commit comments