Skip to content

Commit 4240d36

Browse files
committed
fix: track queues with no workers in load factor
Signed-off-by: Keshav Priyadarshi <git@keshav.space>
1 parent 5962ce6 commit 4240d36

1 file changed

Lines changed: 13 additions & 9 deletions

File tree

vulnerabilities/tasks.py

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -170,6 +170,13 @@ def compute_queue_load_factor():
170170
load_per_queue = {}
171171
seconds_in_24_hr = 86400
172172

173+
with suppress(ConnectionError):
174+
redis_conn = django_rq.get_connection()
175+
queue_names = [
176+
w.queue_names()[0] for w in Worker.all(connection=redis_conn) if w.queue_names()
177+
]
178+
worker_per_queue = dict(Counter(queue_names))
179+
173180
for queue in RQ_QUEUES.keys():
174181
total_compute_seconds_per_queue[queue] = sum(
175182
(p.latest_successful_run.runtime / (p.run_interval / 24))
@@ -178,25 +185,22 @@ def compute_queue_load_factor():
178185
)
179186
if p.latest_successful_run
180187
)
181-
182-
with suppress(ConnectionError):
183-
redis_conn = django_rq.get_connection()
184-
queue_names = [
185-
w.queue_names()[0] for w in Worker.all(connection=redis_conn) if w.queue_names()
186-
]
187-
worker_per_queue = dict(Counter(queue_names))
188+
if queue not in worker_per_queue:
189+
worker_per_queue[queue] = 0
188190

189191
for queue_name, worker_count in worker_per_queue.items():
192+
net_load_on_queue = "no_worker"
190193
total_compute = total_compute_seconds_per_queue.get(queue_name, 0)
191-
if worker_count == 0 or total_compute == 0:
194+
if total_compute == 0:
192195
continue
193196

194197
unit_load_on_queue = total_compute / seconds_in_24_hr
195198

196199
num_of_worker_for_balanced_queue = round(unit_load_on_queue)
197200
addition_worker_needed = max(num_of_worker_for_balanced_queue - worker_count, 0)
198201

199-
net_load_on_queue = unit_load_on_queue / worker_count
202+
if worker_count > 0:
203+
net_load_on_queue = unit_load_on_queue / worker_count
200204

201205
load_per_queue[queue_name] = {
202206
"load_factor": net_load_on_queue,

0 commit comments

Comments
 (0)