7848 queue detail view

This commit is contained in:
Arthur Hanson 2024-11-22 09:54:06 -08:00
parent 7207180fcf
commit cbba650a9f
2 changed files with 18 additions and 1 deletions

View File

@ -1,4 +1,5 @@
from rest_framework import serializers
from rest_framework.reverse import reverse
__all__ = (
'BackgroundTaskSerializer',
@ -50,7 +51,7 @@ class BackgroundTaskSerializer(serializers.Serializer):
class BackgroundQueueSerializer(serializers.Serializer):
name = serializers.CharField()
# Note: Queue names are not url safe so not returning a url field
url = serializers.SerializerMethodField()
jobs = serializers.IntegerField()
oldest_job_timestamp = serializers.CharField()
index = serializers.IntegerField()
@ -62,6 +63,9 @@ class BackgroundQueueSerializer(serializers.Serializer):
failed_jobs = serializers.IntegerField()
scheduled_jobs = serializers.IntegerField()
def get_url(self, obj):
return reverse('core-api:rqqueue-detail', args=[obj['name']], request=self.context.get("request"))
class BackgroundWorkerSerializer(serializers.Serializer):
name = serializers.CharField()

View File

@ -119,6 +119,19 @@ class BackgroundQueueViewSet(BaseRQViewSet):
def get_data(self):
return get_statistics(run_maintenance_tasks=True)["queues"]
@extend_schema(responses={200: OpenApiTypes.OBJECT})
def retrieve(self, request, name):
data = self.get_data()
if not data:
raise Http404
for queue in data:
if queue['name'] == name:
serializer = self.serializer_class(queue, context={'request': request})
return Response(serializer.data)
raise Http404
class BackgroundWorkerViewSet(BaseRQViewSet):
"""