From 371149c935354bf25113e70ecd19a2642bc306f9 Mon Sep 17 00:00:00 2001 From: LordOfPolls Date: Fri, 7 Apr 2023 07:20:18 +0100 Subject: [PATCH] fix: tasks now reset their last_call time on start --- interactions/models/internal/tasks/task.py | 1 + interactions/models/internal/tasks/triggers.py | 4 ++++ 2 files changed, 5 insertions(+) diff --git a/interactions/models/internal/tasks/task.py b/interactions/models/internal/tasks/task.py index 9aa3eeac4..d743b8469 100644 --- a/interactions/models/internal/tasks/task.py +++ b/interactions/models/internal/tasks/task.py @@ -111,6 +111,7 @@ async def _task_loop(self) -> None: def start(self) -> None: """Start this task.""" try: + self.trigger.reschedule() self._stop.clear() self.task = asyncio.create_task(self._task_loop()) except RuntimeError: diff --git a/interactions/models/internal/tasks/triggers.py b/interactions/models/internal/tasks/triggers.py index 5eacdea67..4343dcc94 100644 --- a/interactions/models/internal/tasks/triggers.py +++ b/interactions/models/internal/tasks/triggers.py @@ -15,6 +15,10 @@ def __new__(cls, *args, **kwargs) -> "BaseTrigger": def __or__(self, other: "BaseTrigger") -> "OrTrigger": return OrTrigger(self, other) + def reschedule(self) -> None: + """Update the last call time to now""" + self.last_call_time = datetime.now() + @abstractmethod def next_fire(self) -> datetime | None: """