From 164553a315ed7c9da61b5604ef0ffa4997ee9de5 Mon Sep 17 00:00:00 2001 From: Mifuyu Date: Wed, 17 Jul 2024 02:00:41 +0700 Subject: [PATCH] fix: change CronTrigger next_fire start time Replaces the croniter start_time in CronTrigger from `datetime.now()` to `self.last_call_time.astimezone()` to fix a bug causing possible multiple firing. Fixes #1717 --- interactions/models/internal/tasks/triggers.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/interactions/models/internal/tasks/triggers.py b/interactions/models/internal/tasks/triggers.py index 5ac993236..d15a319ea 100644 --- a/interactions/models/internal/tasks/triggers.py +++ b/interactions/models/internal/tasks/triggers.py @@ -163,4 +163,4 @@ def __init__(self, cron: str, tz: "_TzInfo" = timezone.utc) -> None: self.tz = tz def next_fire(self) -> datetime | None: - return croniter(self.cron, datetime.now(tz=self.tz)).next(datetime) + return croniter(self.cron, self.last_call_time.astimezone(self.tz)).next(datetime)