|
1 | 1 | from html import escape |
2 | | -from math import ceil |
3 | 2 | from typing import Tuple, Optional |
4 | 3 |
|
5 | 4 | import redis |
|
12 | 11 | from django.shortcuts import render |
13 | 12 | from django.urls import reverse, resolve |
14 | 13 | from django.views.decorators.cache import never_cache |
| 14 | +from math import ceil |
15 | 15 | from redis.exceptions import ResponseError |
16 | 16 |
|
17 | 17 | from .queues import get_all_workers, get_connection, logger, QueueNotFoundError |
@@ -307,9 +307,11 @@ def requeue_all(request, queue_name, registry_name): |
307 | 307 | if request.method == 'POST': |
308 | 308 | count = 0 |
309 | 309 | # 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 |
311 | 314 | try: |
312 | | - job = JobExecution.fetch(job_id, connection=queue.connection) |
313 | 315 | job.requeue() |
314 | 316 | count += 1 |
315 | 317 | except Exception: |
@@ -377,22 +379,28 @@ def actions(request, queue_name): |
377 | 379 | return redirect(next_url) |
378 | 380 | job_ids = request.POST.getlist('job_ids') |
379 | 381 | 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 |
382 | 386 | # Remove job id from queue and delete the actual job |
383 | 387 | queue.remove_job_id(job.id) |
384 | 388 | job.delete() |
385 | 389 | messages.info(request, f'You have successfully deleted {len(job_ids)} jobs!') |
386 | 390 | 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 |
389 | 395 | job.requeue() |
390 | 396 | messages.info(request, f'You have successfully re-queued {len(job_ids)} jobs!') |
391 | 397 | elif action == 'stop': |
392 | 398 | 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 |
394 | 403 | try: |
395 | | - job = JobExecution.fetch(job_id, connection=queue.connection) |
396 | 404 | job.stop_execution(queue.connection) |
397 | 405 | job.cancel() |
398 | 406 | cancelled_jobs += 1 |
|
0 commit comments