|
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