|
@@ -7,24 +7,61 @@
|
|
# @Email : zhangdongming@asj6.wecom.work
|
|
# @Email : zhangdongming@asj6.wecom.work
|
|
# @File : CronDelDataController.py
|
|
# @File : CronDelDataController.py
|
|
# @Software: PyCharm
|
|
# @Software: PyCharm
|
|
-from django.db import connection
|
|
|
|
|
|
+import time
|
|
|
|
+
|
|
|
|
+from django.db import connection, connections
|
|
|
|
+from django.views import View
|
|
|
|
|
|
from Object.ResponseObject import ResponseObject
|
|
from Object.ResponseObject import ResponseObject
|
|
from Object.utils import LocalDateTimeUtil
|
|
from Object.utils import LocalDateTimeUtil
|
|
|
|
|
|
|
|
|
|
-def deleteExpireAccessLog(request):
|
|
|
|
- response = ResponseObject()
|
|
|
|
- try:
|
|
|
|
- print(request)
|
|
|
|
- cursor = connection.cursor()
|
|
|
|
- # 删除一个月前的数据
|
|
|
|
- last_month = LocalDateTimeUtil.get_last_month()
|
|
|
|
- sql = 'DELETE FROM access_log WHERE time < %s limit %s'
|
|
|
|
- cursor.execute(sql, [last_month, 10000])
|
|
|
|
- # 关闭游标
|
|
|
|
- cursor.close()
|
|
|
|
- connection.close()
|
|
|
|
- return response.json(0)
|
|
|
|
- except Exception as e:
|
|
|
|
- return response.json(500, repr(e))
|
|
|
|
|
|
+class CronDelDataView(View):
|
|
|
|
+ def get(self, request, *args, **kwargs):
|
|
|
|
+ request.encoding = 'utf-8'
|
|
|
|
+ operation = kwargs.get('operation')
|
|
|
|
+ return self.validation(request.GET, request, operation)
|
|
|
|
+
|
|
|
|
+ def post(self, request, *args, **kwargs):
|
|
|
|
+ request.encoding = 'utf-8'
|
|
|
|
+ operation = kwargs.get('operation')
|
|
|
|
+ return self.validation(request.POST, request, operation)
|
|
|
|
+
|
|
|
|
+ def validation(self, request_dict, request, operation):
|
|
|
|
+ response = ResponseObject()
|
|
|
|
+ if operation == 'access-log/del': # 定时删除访问接口数据
|
|
|
|
+ return self.del_access_log(response)
|
|
|
|
+ elif operation == 'push-info/del': # 定时删除推送数据
|
|
|
|
+ return self.del_push_info(response)
|
|
|
|
+ else:
|
|
|
|
+ return response.json(404)
|
|
|
|
+
|
|
|
|
+ @staticmethod
|
|
|
|
+ def del_access_log(response):
|
|
|
|
+ try:
|
|
|
|
+ cursor = connection.cursor()
|
|
|
|
+ # 删除一个月前的数据
|
|
|
|
+ last_month = LocalDateTimeUtil.get_last_month()
|
|
|
|
+ sql = 'DELETE FROM access_log WHERE time < %s limit %s'
|
|
|
|
+ cursor.execute(sql, [last_month, 10000])
|
|
|
|
+ # 关闭游标
|
|
|
|
+ cursor.close()
|
|
|
|
+ connection.close()
|
|
|
|
+ return response.json(0)
|
|
|
|
+ except Exception as e:
|
|
|
|
+ return response.json(500, repr(e))
|
|
|
|
+
|
|
|
|
+ @staticmethod
|
|
|
|
+ def del_push_info(response):
|
|
|
|
+ nowTime = int(time.time())
|
|
|
|
+ cursor = connections['mysql02'].cursor()
|
|
|
|
+ try:
|
|
|
|
+ for i in range(5):
|
|
|
|
+ # 删除7天前的数据
|
|
|
|
+ sql = "DELETE FROM `equipment_info` WHERE addTime<={} LIMIT 10000".format(nowTime - 3600 * 24 * 7)
|
|
|
|
+ cursor.execute(sql)
|
|
|
|
+ # 关闭游标
|
|
|
|
+ cursor.close()
|
|
|
|
+ return response.json(0)
|
|
|
|
+ except Exception as e:
|
|
|
|
+ return response.json(500, repr(e))
|