@@ -125,7 +125,11 @@ def __init__(self) -> None:
125
125
self .queue_dict : dict = dict ()
126
126
self ._lock = threading .RLock ()
127
127
# default value is before the release
128
- self .last_created_at : datetime .datetime = datetime .datetime (2024 , 1 , 1 )
128
+ self .last_created_at : datetime .datetime
129
+ self .set_default_last_created_at ()
130
+
131
+ def set_default_last_created_at (self ) -> None :
132
+ self .last_created_at = datetime .datetime (2024 , 1 , 1 )
129
133
130
134
def get (self , key : str , default = None ) -> Any :
131
135
with self ._lock :
@@ -157,6 +161,11 @@ def len(self) -> int:
157
161
with self ._lock :
158
162
return len (self .queue_dict )
159
163
164
+ def reset (self ) -> None :
165
+ with self ._lock :
166
+ self .queue_dict = dict ()
167
+ self .set_default_last_created_at ()
168
+
160
169
161
170
class QoSRules :
162
171
def __init__ (self ) -> None :
@@ -435,11 +444,13 @@ def run(self) -> None:
435
444
last_created_at = self .queue .last_created_at ,
436
445
)
437
446
):
447
+ # if the internal queue is not in sync with the database, re-sync it
438
448
logger .info (
439
- "not in sync " ,
449
+ "re-syncing internal queue " ,
440
450
internal_queue = {queue_length },
441
451
db_queue = {db_queue },
442
452
)
453
+ self .queue .reset ()
443
454
444
455
self .running_requests = len (
445
456
[
0 commit comments