File tree Expand file tree Collapse file tree 2 files changed +23
-2
lines changed Expand file tree Collapse file tree 2 files changed +23
-2
lines changed Original file line number Diff line number Diff line change @@ -94,12 +94,15 @@ def get_task_delay(task: ScheduledTask) -> Optional[int]:
9494 return 0
9595 return None
9696 if task .time is not None :
97- task_time = to_tz_aware (task .time ). replace ( microsecond = 0 )
97+ task_time = to_tz_aware (task .time )
9898 if task_time <= now :
9999 return 0
100100 one_min_ahead = (now + timedelta (minutes = 1 )).replace (second = 1 , microsecond = 0 )
101101 if task_time <= one_min_ahead :
102- return int ((task_time - now ).total_seconds ())
102+ delay = task_time - now
103+ if delay .microseconds :
104+ return int (delay .total_seconds ()) + 1
105+ return int (delay .total_seconds ())
103106 return None
104107
105108
Original file line number Diff line number Diff line change @@ -124,3 +124,21 @@ def test_time_delay() -> None:
124124 ),
125125 )
126126 assert delay is not None and delay == 15
127+
128+
129+ @freeze_time ("2023-01-14 12:00:00.05" )
130+ def test_time_delay_with_milliseconds () -> None :
131+ time = datetime .datetime .now (tz = pytz .UTC ) + datetime .timedelta (
132+ seconds = 15 ,
133+ milliseconds = 150 ,
134+ )
135+ delay = get_task_delay (
136+ ScheduledTask (
137+ task_name = "" ,
138+ labels = {},
139+ args = [],
140+ kwargs = {},
141+ time = time ,
142+ ),
143+ )
144+ assert delay is not None and delay == 16
You can’t perform that action at this time.
0 commit comments