Skip to content

Commit c3ce1a0

Browse files
committed
fix:use fetch_many
1 parent 13571f1 commit c3ce1a0

File tree

3 files changed

+25
-17
lines changed

3 files changed

+25
-17
lines changed

poetry.lock

Lines changed: 7 additions & 7 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

scheduler/management/commands/delete_failed_executions.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ def add_arguments(self, parser):
1818
def handle(self, *args, **options):
1919
queue = get_queue(options.get('queue', 'default'))
2020
job_ids = queue.failed_job_registry.get_job_ids()
21-
jobs = [JobExecution.fetch(job_id, connection=queue.connection) for job_id in job_ids]
21+
jobs = JobExecution.fetch_many(job_ids, connection=queue.connection)
2222
func_name = options.get('func', None)
2323
if func_name is not None:
2424
jobs = [job for job in jobs if job.func_name == func_name]

scheduler/views.py

Lines changed: 17 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
from html import escape
2-
from math import ceil
32
from typing import Tuple, Optional
43

54
import redis
@@ -12,6 +11,7 @@
1211
from django.shortcuts import render
1312
from django.urls import reverse, resolve
1413
from django.views.decorators.cache import never_cache
14+
from math import ceil
1515
from redis.exceptions import ResponseError
1616

1717
from .queues import get_all_workers, get_connection, logger, QueueNotFoundError
@@ -307,9 +307,11 @@ def requeue_all(request, queue_name, registry_name):
307307
if request.method == 'POST':
308308
count = 0
309309
# Confirmation received
310-
for job_id in job_ids:
310+
jobs = JobExecution.fetch_many(job_ids, connection=queue.connection)
311+
for job in jobs:
312+
if job is None:
313+
continue
311314
try:
312-
job = JobExecution.fetch(job_id, connection=queue.connection)
313315
job.requeue()
314316
count += 1
315317
except Exception:
@@ -377,22 +379,28 @@ def actions(request, queue_name):
377379
return redirect(next_url)
378380
job_ids = request.POST.getlist('job_ids')
379381
if action == 'delete':
380-
for job_id in job_ids:
381-
job = JobExecution.fetch(job_id, connection=queue.connection)
382+
jobs = JobExecution.fetch_many(job_ids, connection=queue.connection)
383+
for job in jobs:
384+
if job is None:
385+
continue
382386
# Remove job id from queue and delete the actual job
383387
queue.remove_job_id(job.id)
384388
job.delete()
385389
messages.info(request, f'You have successfully deleted {len(job_ids)} jobs!')
386390
elif action == 'requeue':
387-
for job_id in job_ids:
388-
job = JobExecution.fetch(job_id, connection=queue.connection)
391+
jobs = JobExecution.fetch_many(job_ids, connection=queue.connection)
392+
for job in jobs:
393+
if job is None:
394+
continue
389395
job.requeue()
390396
messages.info(request, f'You have successfully re-queued {len(job_ids)} jobs!')
391397
elif action == 'stop':
392398
cancelled_jobs = 0
393-
for job_id in job_ids:
399+
jobs = JobExecution.fetch_many(job_ids, connection=queue.connection)
400+
for job in jobs:
401+
if job is None:
402+
continue
394403
try:
395-
job = JobExecution.fetch(job_id, connection=queue.connection)
396404
job.stop_execution(queue.connection)
397405
job.cancel()
398406
cancelled_jobs += 1

0 commit comments

Comments
 (0)