14729 no queue param on task

This commit is contained in:
Arthur 2024-01-19 15:08:17 -08:00
parent 3e18fa997b
commit 031cd04413
3 changed files with 11 additions and 7 deletions

View File

@ -53,7 +53,7 @@ class BackgroundTaskTable(BaseTable):
def render_id(self, value, record): def render_id(self, value, record):
return mark_safe('<a href=' + reverse( return mark_safe('<a href=' + reverse(
"core:background_task", "core:background_task",
args=[self.queue_index, value]) + '>' + value + '</a>' args=[value]) + '>' + value + '</a>'
) )
def render_status(self, value, record): def render_status(self, value, record):

View File

@ -28,7 +28,7 @@ urlpatterns = (
# Background Tasks # Background Tasks
path('background-queues/', views.BackgroundQueueListView.as_view(), name='background_queue_list'), path('background-queues/', views.BackgroundQueueListView.as_view(), name='background_queue_list'),
path('background-queues/<int:queue_index>/', views.BackgroundTaskListView.as_view(), name='background_task_list'), path('background-queues/<int:queue_index>/', views.BackgroundTaskListView.as_view(), name='background_task_list'),
path('background-tasks/<int:queue_index>/<str:job_id>/', views.BackgroundTaskDetailView.as_view(), name='background_task'), path('background-tasks/<str:job_id>/', views.BackgroundTaskDetailView.as_view(), name='background_task'),
# Config revisions # Config revisions
path('config-revisions/', views.ConfigRevisionListView.as_view(), name='configrevision_list'), path('config-revisions/', views.ConfigRevisionListView.as_view(), name='configrevision_list'),

View File

@ -5,7 +5,8 @@ from django.contrib.auth.mixins import UserPassesTestMixin
from django.core.cache import cache from django.core.cache import cache
from django.http import HttpResponseForbidden, Http404 from django.http import HttpResponseForbidden, Http404
from django.utils.translation import gettext_lazy as _ from django.utils.translation import gettext_lazy as _
from django_rq.queues import get_queue_by_index from django_rq.queues import get_queue_by_index, get_redis_connection
from django_rq.settings import QUEUES_MAP, QUEUES_LIST
from django_rq.utils import get_scheduler_statistics, get_statistics from django_rq.utils import get_scheduler_statistics, get_statistics
from django.shortcuts import get_object_or_404, redirect, render from django.shortcuts import get_object_or_404, redirect, render
from django.views.generic import View from django.views.generic import View
@ -285,14 +286,17 @@ class BackgroundTaskDetailView(UserPassesTestMixin, View):
def test_func(self): def test_func(self):
return self.request.user.is_staff return self.request.user.is_staff
def get(self, request, queue_index, job_id): def get(self, request, job_id):
queue = get_queue_by_index(queue_index) # all the RQ queues should use the same connection
config = QUEUES_LIST[0]
try: try:
job = RQ_Job.fetch(job_id, connection=queue.connection, serializer=queue.serializer) job = RQ_Job.fetch(job_id, connection=get_redis_connection(config['connection_config']),)
except NoSuchJobError: except NoSuchJobError:
raise Http404(_("Job {job_id} not found").format(job_id=job_id)) raise Http404(_("Job {job_id} not found").format(job_id=job_id))
queue_index = QUEUES_MAP[job.origin]
queue = get_queue_by_index(queue_index)
try: try:
job.func_name job.func_name
data_is_valid = True data_is_valid = True