Skip to content

Commit 7c6bb29

Browse files
committed
misc: change start time for cron datetime retriever
1 parent 2ef1a01 commit 7c6bb29

File tree

1 file changed

+8
-5
lines changed

1 file changed

+8
-5
lines changed

aiocarrot/scheduler/types.py

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,11 @@ class Task:
2222
def __init__(self, carrot: 'Carrot', message: 'Message') -> None:
2323
self._carrot = carrot
2424
self._message = message
25-
self._cron = croniter(message.schedule, datetime.now(timezone.utc))
26-
self._sync()
25+
26+
now = datetime.now(timezone.utc)
27+
28+
self._cron = croniter(message.schedule, now)
29+
self._sync(now)
2730

2831
async def run(self):
2932
logger.info(f'Scheduled task <{self._message.name}> has been queued')
@@ -32,16 +35,16 @@ async def run(self):
3235

3336
def is_due(self, now: datetime) -> bool:
3437
if self._resync_at_next_tick:
35-
self._sync()
38+
self._sync(now)
3639

3740
return now >= self._next_run
3841

3942
@property
4043
def next_run(self) -> datetime:
4144
return self._next_run
4245

43-
def _sync(self) -> None:
44-
self._next_run = self._cron.get_next(datetime)
46+
def _sync(self, start_datetime: datetime) -> None:
47+
self._next_run = self._cron.get_next(datetime, start_time=start_datetime)
4548
self._resync_at_next_tick = False
4649

4750

0 commit comments

Comments
 (0)