|
@@ -1,14 +1,17 @@
|
|
|
+import datetime
|
|
|
import json
|
|
|
import logging
|
|
|
import os
|
|
|
import time
|
|
|
import traceback
|
|
|
import urllib
|
|
|
+import zoneinfo
|
|
|
|
|
|
import boto3
|
|
|
import botocore
|
|
|
import cv2
|
|
|
import oss2
|
|
|
+import pytz
|
|
|
import requests
|
|
|
from boto3.session import Session
|
|
|
from django.contrib.auth.hashers import make_password # 对密码加密模块
|
|
@@ -49,10 +52,11 @@ from Model.models import (
|
|
|
TestSerialRepetition,
|
|
|
UID_Bucket,
|
|
|
UIDCompanySerialModel,
|
|
|
- VodBucketModel, PaypalWebHookEvent,
|
|
|
+ VodBucketModel, PaypalWebHookEvent, TimeZoneInfo,
|
|
|
)
|
|
|
from Object.AliPayObject import AliPayObject
|
|
|
from Object.AWS.AmazonS3Util import AmazonS3Util
|
|
|
+from Object.CeleryBeatObject import CeleryBeatObj
|
|
|
from Object.ContentSecurityObject import ContentSecurity
|
|
|
from Object.IPWeatherObject import IPQuery, OpenWeatherMap, GeoIP2
|
|
|
from Object.m3u8generate import PlaylistGenerator
|
|
@@ -62,7 +66,7 @@ from Object.TokenObject import TokenObject
|
|
|
from Object.utils.PayPalUtil import PayPalService
|
|
|
from Service.CommonService import CommonService
|
|
|
from Service.VodHlsService import SplitVodHlsObject
|
|
|
-from Object.ApschedulerObject import ApschedulerObject, ApschedulerObjectTest
|
|
|
+from Object.ApschedulerObject import ApschedulerObject
|
|
|
|
|
|
ACCESS_KEY = "AKIA2E67UIMD3CYTIWPA"
|
|
|
SECRET_KEY = "mHl79oiKxEf+89friTtwIcF8FUFIdVksUwySixwQ"
|
|
@@ -176,8 +180,8 @@ class testView(View):
|
|
|
return self.oci_oss(request, response)
|
|
|
elif operation == 'genericReportPush': # 设备上传日志
|
|
|
return self.generic_report_push(request_dict, response)
|
|
|
- elif operation == 'date_apscheduler': # date定时任务测试
|
|
|
- return self.date_apscheduler(request_dict, response)
|
|
|
+ elif operation == 'celery': # celery
|
|
|
+ return self.celery(request_dict, response)
|
|
|
else:
|
|
|
return response.json(414)
|
|
|
|
|
@@ -1222,11 +1226,64 @@ class testView(View):
|
|
|
return response.json(500, 'error_line:{}, error_msg:{}'.format(e.__traceback__.tb_lineno, repr(e)))
|
|
|
|
|
|
@staticmethod
|
|
|
- def date_apscheduler(request_dict, response):
|
|
|
- task_id = request_dict.get('task_id', None)
|
|
|
- time_stamp = int(request_dict.get('time_stamp', None))
|
|
|
+ def celery(request_dict, response):
|
|
|
+ from celery import Celery
|
|
|
+ from Ansjer.celery import app
|
|
|
+ from django_celery_beat.models import PeriodicTask, IntervalSchedule, ClockedSchedule, CrontabSchedule
|
|
|
+ every = int(request_dict.get('every', None))
|
|
|
+ period = request_dict.get('period', None)
|
|
|
+ name = request_dict.get('name', None)
|
|
|
+ task = request_dict.get('task', None)
|
|
|
+ minute = request_dict.get('minute', None)
|
|
|
+ hour = request_dict.get('hour', None)
|
|
|
+ day_of_week = request_dict.get('day_of_week', None)
|
|
|
+
|
|
|
+ time_string = request_dict.get('time_string', None)
|
|
|
+ timezone_offset = request_dict.get('timezone_offset', None)
|
|
|
+ timezone_offset = float(timezone_offset)
|
|
|
+ celery_beat_obj = CeleryBeatObj()
|
|
|
+ args = ['啊哈']
|
|
|
+ kwargs = {
|
|
|
+ 'x': 3,
|
|
|
+ 'y': 3
|
|
|
+ }
|
|
|
try:
|
|
|
- ApschedulerObjectTest(SmartSceneView.pub_mqtt, task_id, time_stamp, (201, 2010, '000IAR11L'), 8.0)
|
|
|
+ # 间隔任务
|
|
|
+ # celery_beat_obj.creat_interval_task(every, period, name, task)
|
|
|
+ # schedule, _ = IntervalSchedule.objects.get_or_create(every=6, period=IntervalSchedule.SECONDS)
|
|
|
+ # PeriodicTask.objects.create(interval=schedule, name='hello_6_task', task='Controller.CeleryTasks.tasks.hello')
|
|
|
+ # PeriodicTask.objects.create(interval=schedule, name='clock_task',
|
|
|
+ # task='Controller.CeleryTasks.tasks.hello')
|
|
|
+
|
|
|
+ # 定时任务
|
|
|
+ # celery_beat_obj.creat_clocked_task(timezone_offset, time_string, name, task, kwargs=kwargs)
|
|
|
+ # time_stamp = CommonService.convert_to_timestamp(timezone_offset, time_string)
|
|
|
+ # clocked_time = CommonService.get_date_from_timestamp(time_stamp, timezone_offset)
|
|
|
+ # schedule, _ = ClockedSchedule.objects.get_or_create(clocked_time=clocked_time)
|
|
|
+ # PeriodicTask.objects.create(clocked=schedule, one_off=True, name=task_name,
|
|
|
+ # task='Controller.CeleryTasks.tasks.hello')
|
|
|
+
|
|
|
+ # 周期任务
|
|
|
+ # celery_beat_obj.creat_crontab_task(
|
|
|
+ # timezone_offset, name, task, minute=minute, hour=hour, day_of_week=day_of_week, kwargs=kwargs)
|
|
|
+ # time_zone_info_qs = TimeZoneInfo.objects.filter(tz=timezone_offset).values('zone_info')
|
|
|
+ # zone_info = time_zone_info_qs[0]['zone_info']
|
|
|
+ # timezone = zoneinfo.ZoneInfo(zone_info)
|
|
|
+ # schedule, _ = CrontabSchedule.objects.get_or_create(
|
|
|
+ # minute='11',
|
|
|
+ # hour='16',
|
|
|
+ # day_of_week='*',
|
|
|
+ # day_of_month='*',
|
|
|
+ # month_of_year='*',
|
|
|
+ # timezone=timezone)
|
|
|
+ # PeriodicTask.objects.create(crontab=schedule, name=task_name,
|
|
|
+ # task='Controller.CeleryTasks.tasks.hello')
|
|
|
+
|
|
|
+ # 暂停/恢复/删除任务
|
|
|
+ # celery_beat_obj.disable_task(name)
|
|
|
+ # celery_beat_obj.enable_task(name)
|
|
|
+ celery_beat_obj.del_task(name)
|
|
|
+
|
|
|
return response.json(0)
|
|
|
except Exception as e:
|
|
|
return response.json(500, 'error_line:{}, error_msg:{}'.format(e.__traceback__.tb_lineno, repr(e)))
|