# 修复定时任务执行逻辑

This commit is contained in:
xianfux 2022-08-14 12:31:48 +08:00
parent f4a45bd2ea
commit 26325ff868
1 changed files with 19 additions and 2 deletions

View File

@ -4,11 +4,18 @@ from functools import reduce
from datetime import datetime, time, timedelta
from django.db.models import Max
from celery import task
import os
import django
pwd = os.path.dirname(os.path.realpath(__file__))
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "mosqkiller.settings")
django.setup()
from counter.models import DeviceCount
from counter.models import DeviceInfo as D1
from mosquito.models import MosqPostStatistic, DevicePostStatistic, DeviceInfo, Org
def max_count(x, y):
if x.count > y.count:
return x
@ -23,6 +30,8 @@ def shortest_date(date, date_list):
def fill_date(ret=None, tz=None):
date_list = [k for k in ret]
if len(date_list) == 0:
return None
min_date = min(date_list)
max_date = datetime.now(tz).date()
days = (max_date - min_date).days
@ -40,7 +49,7 @@ def get_daily_statistic(enable_container=False):
qs = DeviceCount.objects.raw('select id, date(data_time) as date from device_count group by date')
if qs:
tz = pytz.timezone("UTC")
device_list = {item.device_id for item in DeviceCount.objects.distinct()}
device_list = {item.device_id for item in DeviceInfo.objects.distinct()}
for item in device_list:
device_container[item] = set()
for q in qs:
@ -83,6 +92,8 @@ def update_daily_statistic():
org = device.org
container = dict(device_container[device_id])
full_daily_ret = fill_date(container, tz=pytz.timezone("UTC"))
if full_daily_ret is None:
continue
_date_list = [k for k in full_daily_ret]
_date_list.sort()
@ -150,3 +161,9 @@ def update_mosq_device_info():
for device_id in x:
DeviceInfo.objects.create(device_id=device_id, org=default_org)
return list(x)
if __name__ == '__main__':
# a, b = get_daily_statistic()
# print(a, b)
update_daily_statistic()