# 完善task
This commit is contained in:
parent
5401ce3ccd
commit
f908676d9b
|
@ -5,7 +5,7 @@ from datetime import datetime, time, timedelta
|
|||
from django.db.models import Max
|
||||
from celery import task
|
||||
from counter.models import DeviceCount
|
||||
from mosquito.models import MosqPostStatistic
|
||||
from mosquito.models import MosqPostStatistic, DevicePostStatistic
|
||||
|
||||
|
||||
def max_count(x, y):
|
||||
|
@ -53,7 +53,7 @@ def get_daily_statistic(enable_container=False):
|
|||
if enable_container:
|
||||
for device_id in device_list:
|
||||
device_container[device_id] = device_container[device_id] | \
|
||||
{(entry.data_time, entry.count)
|
||||
{(entry.data_time.date(), entry.count)
|
||||
for entry in daily_queryset if entry.device_id == device_id}
|
||||
calc_result = sum(map(lambda x: int(x.count), daily_queryset))
|
||||
date = q.date
|
||||
|
@ -61,6 +61,7 @@ def get_daily_statistic(enable_container=False):
|
|||
return daily_ret, device_container
|
||||
|
||||
|
||||
@task()
|
||||
def update_daily_statistic():
|
||||
full_ret = None
|
||||
# 计算每天聚合值
|
||||
|
@ -75,6 +76,19 @@ def update_daily_statistic():
|
|||
container = dict(device_container[device_id])
|
||||
full_daily_ret = fill_date(container, tz=pytz.timezone("UTC"))
|
||||
|
||||
_date_list = [k for k in full_daily_ret]
|
||||
_date_list.sort()
|
||||
for d in _date_list:
|
||||
try:
|
||||
obj = DevicePostStatistic.objects.get(device_id=device_id, date=d)
|
||||
except DevicePostStatistic.DoesNotExist:
|
||||
obj = None
|
||||
if obj:
|
||||
obj.total = full_daily_ret[d]
|
||||
obj.save()
|
||||
else:
|
||||
DevicePostStatistic.objects.create(device_id=device_id, total=full_daily_ret[d], date=d)
|
||||
|
||||
# 写入数据库
|
||||
if full_ret:
|
||||
_date_list = [k for k in full_ret]
|
||||
|
|
Loading…
Reference in New Issue