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]:
94
94
return 0
95
95
return None
96
96
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 )
98
98
if task_time <= now :
99
99
return 0
100
100
one_min_ahead = (now + timedelta (minutes = 1 )).replace (second = 1 , microsecond = 0 )
101
101
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 ())
103
106
return None
104
107
105
108
Original file line number Diff line number Diff line change @@ -124,3 +124,21 @@ def test_time_delay() -> None:
124
124
),
125
125
)
126
126
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