* tasks 获取svg
This commit is contained in:
parent
ca06dea7f0
commit
3ae075feb0
|
@ -5,7 +5,7 @@
|
|||
@Author : DM
|
||||
@Software: PyCharm
|
||||
"""
|
||||
from django.urls import path, include
|
||||
from django.urls import path, include, re_path
|
||||
from rest_framework.routers import DefaultRouter
|
||||
from apps.task import views
|
||||
|
||||
|
@ -16,4 +16,5 @@ router.register('tasks', views.TaskAPIView)
|
|||
|
||||
urlpatterns = [
|
||||
path('api/v1/', include(router.urls)),
|
||||
re_path('^api/v1/tasks/(?P<task_id>\d+)/(?P<etx>[a-zA-Z]+)/$', views.TaskAPIView.as_view({'get': 'get_task_svg'})),
|
||||
]
|
||||
|
|
|
@ -2,7 +2,9 @@ import os
|
|||
import ast
|
||||
import subprocess
|
||||
|
||||
from django.http.response import FileResponse
|
||||
from django_filters.rest_framework import DjangoFilterBackend
|
||||
from django.shortcuts import get_object_or_404
|
||||
from rest_framework.filters import SearchFilter, OrderingFilter
|
||||
from rest_framework.viewsets import GenericViewSet
|
||||
from rest_framework import mixins
|
||||
|
@ -84,6 +86,22 @@ class TaskAPIView(GenericViewSet,
|
|||
instance.deleted_by = self.request.user
|
||||
instance.save()
|
||||
|
||||
def get_task_svg(self, request, task_id: str, etx: str, *args, **kwargs):
|
||||
if etx != 'svg':
|
||||
return not_found(message="请输入正确参数: SVG")
|
||||
|
||||
instance = get_object_or_404(JobModel, pk=task_id)
|
||||
if instance.status == 'Success':
|
||||
result = json.loads(instance.result)
|
||||
svg_context = result.get('flamegraph', None)
|
||||
if svg_context is None:
|
||||
return success(success=False, message='Result 未包含 "flamegraph"字段')
|
||||
return FileResponse(svg_context)
|
||||
else:
|
||||
return success(result={}, message=f"任务:{instance.status}", success=False)
|
||||
|
||||
|
||||
|
||||
|
||||
def script_task(data):
|
||||
try:
|
||||
|
|
Loading…
Reference in New Issue