Skip to content

Commit c943c85

Browse files
PooyaFekriPouya Work
andauthored
Fix wrong scheduling in OrTrigger (#35)
Co-authored-by: Pouya Work <[email protected]>
1 parent 3d196b2 commit c943c85

File tree

2 files changed

+10
-9
lines changed

2 files changed

+10
-9
lines changed

aioclock/triggers.py

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -355,13 +355,13 @@ def validate_time_units(self):
355355
def to_seconds(self) -> float:
356356
result = self.seconds or 0
357357
if self.weeks is not None:
358-
result += self.weeks * 604800
358+
result += self.weeks * WEEK_TO_SECOND
359359
if self.days is not None:
360-
result += self.days * 86400
360+
result += self.days * DAY_TO_SECOND
361361
if self.hours is not None:
362-
result += self.hours * 3600
362+
result += self.hours * HOUR_TO_SECOND
363363
if self.minutes is not None:
364-
result += self.minutes * 60
364+
result += self.minutes * MINUTE_TO_SECOND
365365

366366
return result
367367

@@ -382,7 +382,10 @@ async def get_waiting_time_till_next_trigger(self):
382382
return None
383383

384384

385-
WEEK_TO_SECOND = 604800
385+
MINUTE_TO_SECOND = 60
386+
HOUR_TO_SECOND = 60 * MINUTE_TO_SECOND
387+
DAY_TO_SECOND = 24 * HOUR_TO_SECOND
388+
WEEK_TO_SECOND = 7 * DAY_TO_SECOND
386389

387390

388391
class At(LoopController[Literal[Triggers.AT]]):
@@ -603,10 +606,8 @@ async def find_closest_trigger(self) -> tuple[BaseTrigger, float | None]:
603606

604607
async def trigger_next(self) -> None:
605608
self._increment_loop_counter()
606-
next_trigger, time_to_sleep = await self.find_closest_trigger()
609+
next_trigger, _ = await self.find_closest_trigger()
607610
await next_trigger.trigger_next()
608-
if time_to_sleep is not None:
609-
await asyncio.sleep(time_to_sleep)
610611
return None
611612

612613
async def get_waiting_time_till_next_trigger(self):

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[project]
22
name = "aioclock"
3-
version = "0.3.0"
3+
version = "0.3.1"
44
description = "An asyncio-based scheduling framework designed for execution of periodic task with integrated support for dependency injection, enabling efficient and flexible task management"
55
authors = [{ name = "Mani Mozaffar", email = "[email protected]" }]
66
readme = "README.md"

0 commit comments

Comments
 (0)