62 lines
1.8 KiB
Python
62 lines
1.8 KiB
Python
![]() |
#!/usr/bin/env python
|
||
|
# -*- coding: utf-8 -*-
|
||
|
|
||
|
from django.http import JsonResponse
|
||
|
from drf_yasg import openapi
|
||
|
from drf_yasg.utils import swagger_auto_schema
|
||
|
from rest_framework import permissions
|
||
|
from rest_framework.decorators import api_view, action
|
||
|
from rest_framework.views import APIView
|
||
|
|
||
|
from web.controller.base_controller import BaseController
|
||
|
from web.handler.html_parser_handler import HtmlParserHandler
|
||
|
from web.manager.log_manager import LogManager
|
||
|
from web.util.dto_util import DtoUtil
|
||
|
from web.vo.scheduler_vo import SchedulerVo
|
||
|
|
||
|
Logger = LogManager.get_logger(__name__)
|
||
|
|
||
|
|
||
|
class SchedulerController(APIView, BaseController):
|
||
|
"""
|
||
|
创建定时任务
|
||
|
"""
|
||
|
@api_view(['POST'])
|
||
|
def create(self, request):
|
||
|
Logger.info('创建定时任务')
|
||
|
|
||
|
scheduler_vo = self.to_vo(request, SchedulerVo)
|
||
|
service_result = self.apscheduler_handler.create(HtmlParserHandler().parse_html, scheduler_vo.job_id,
|
||
|
scheduler_vo.seconds, {'url': scheduler_vo.url})
|
||
|
return JsonResponse(DtoUtil.service_result_to_api_result(service_result), safe=False)
|
||
|
|
||
|
@api_view(['GET'])
|
||
|
def delete(self, request):
|
||
|
"""
|
||
|
删除定时任务
|
||
|
"""
|
||
|
|
||
|
Logger.info('删除定时任务')
|
||
|
scheduler_vo = self.to_vo(request, SchedulerVo)
|
||
|
self.apscheduler_handler.delete(scheduler_vo.job_id)
|
||
|
|
||
|
@api_view(['POST'])
|
||
|
def update(self, request):
|
||
|
"""
|
||
|
修改定时任务
|
||
|
"""
|
||
|
|
||
|
Logger.info('修改定时任务')
|
||
|
|
||
|
scheduler_vo = self.to_vo(request, SchedulerVo)
|
||
|
|
||
|
@api_view(['POST'])
|
||
|
def search(self, request):
|
||
|
"""
|
||
|
查询定时任务
|
||
|
"""
|
||
|
|
||
|
Logger.info('查询定时任务')
|
||
|
|
||
|
scheduler_vo = self.to_vo(request, SchedulerVo)
|