# 修复定时任务执行逻辑
This commit is contained in:
parent
f4a45bd2ea
commit
26325ff868
|
@ -4,11 +4,18 @@ from functools import reduce
|
||||||
from datetime import datetime, time, timedelta
|
from datetime import datetime, time, timedelta
|
||||||
from django.db.models import Max
|
from django.db.models import Max
|
||||||
from celery import task
|
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 DeviceCount
|
||||||
from counter.models import DeviceInfo as D1
|
from counter.models import DeviceInfo as D1
|
||||||
from mosquito.models import MosqPostStatistic, DevicePostStatistic, DeviceInfo, Org
|
from mosquito.models import MosqPostStatistic, DevicePostStatistic, DeviceInfo, Org
|
||||||
|
|
||||||
|
|
||||||
def max_count(x, y):
|
def max_count(x, y):
|
||||||
if x.count > y.count:
|
if x.count > y.count:
|
||||||
return x
|
return x
|
||||||
|
@ -23,6 +30,8 @@ def shortest_date(date, date_list):
|
||||||
|
|
||||||
def fill_date(ret=None, tz=None):
|
def fill_date(ret=None, tz=None):
|
||||||
date_list = [k for k in ret]
|
date_list = [k for k in ret]
|
||||||
|
if len(date_list) == 0:
|
||||||
|
return None
|
||||||
min_date = min(date_list)
|
min_date = min(date_list)
|
||||||
max_date = datetime.now(tz).date()
|
max_date = datetime.now(tz).date()
|
||||||
days = (max_date - min_date).days
|
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')
|
qs = DeviceCount.objects.raw('select id, date(data_time) as date from device_count group by date')
|
||||||
if qs:
|
if qs:
|
||||||
tz = pytz.timezone("UTC")
|
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:
|
for item in device_list:
|
||||||
device_container[item] = set()
|
device_container[item] = set()
|
||||||
for q in qs:
|
for q in qs:
|
||||||
|
@ -83,6 +92,8 @@ def update_daily_statistic():
|
||||||
org = device.org
|
org = device.org
|
||||||
container = dict(device_container[device_id])
|
container = dict(device_container[device_id])
|
||||||
full_daily_ret = fill_date(container, tz=pytz.timezone("UTC"))
|
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 = [k for k in full_daily_ret]
|
||||||
_date_list.sort()
|
_date_list.sort()
|
||||||
|
@ -150,3 +161,9 @@ def update_mosq_device_info():
|
||||||
for device_id in x:
|
for device_id in x:
|
||||||
DeviceInfo.objects.create(device_id=device_id, org=default_org)
|
DeviceInfo.objects.create(device_id=device_id, org=default_org)
|
||||||
return list(x)
|
return list(x)
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
# a, b = get_daily_statistic()
|
||||||
|
# print(a, b)
|
||||||
|
update_daily_statistic()
|
Loading…
Reference in New Issue