Added stats tasks

pull/78/head
Konstantin Gründger 2019-03-24 00:00:59 +01:00
rodzic 5fa988a245
commit b25257f697
4 zmienionych plików z 30 dodań i 3 usunięć

Wyświetl plik

@ -10,6 +10,8 @@ from ogn_python.collect.logbook import update_max_altitudes as logbook_update_ma
from ogn_python.collect.database import import_ddb as device_infos_import_ddb
from ogn_python.collect.database import update_country_code as receivers_update_country_code
from ogn_python.collect.stats import create_device_stats, update_device_stats_jumps, create_receiver_stats, create_relation_stats, update_qualities
from ogn_python import db
from ogn_python import celery
@ -69,4 +71,17 @@ def purge_old_data(max_hours):
.filter(ReceiverBeacon.timestamp < min_timestamp) \
.delete()
db.session.commit()
db.session.commit()
@celery.task(name='update_stats')
def update_stats(day_offset):
"""Update stats of the current day."""
date = datetime.datetime.today() + datetime.timedelta(days=day_offset)
create_device_stats(session=db.session, date=date)
update_device_stats_jumps(session=db.session, date=date)
create_receiver_stats(session=db.session, date=date)
create_relation_stats(session=db.session, date=date)
update_qualities(session=db.session, date=date)

Wyświetl plik

@ -5,7 +5,7 @@ SQLALCHEMY_TRACK_MODIFICATIONS = False
CELERY_BROKER_URL = 'redis://localhost:6379/0'
CELERY_RESULT_BACKEND = 'redis://localhost:6379/0'
from celery.schedules import crontab
from datetime import timedelta
CELERYBEAT_SCHEDULE = {
@ -30,6 +30,16 @@ CELERYBEAT_SCHEDULE = {
'task': 'update_logbook_max_altitude',
'schedule': timedelta(minutes=1),
},
'update-stats-hourly': {
'task': 'update_stats',
'schedule': timedelta(hours=1),
'kwargs': {'day_offset': 0},
},
'update-stats-daily': {
'task': 'update_stats',
'schedule': crontab(hour=0, minute=5),
'kwargs': {'day_offset': -1},
},
#'purge_old_data': {
# 'task': 'purge_old_data',
# 'schedule': timedelta(minutes=10),

Wyświetl plik

@ -2,6 +2,8 @@
{% block content %}
<link rel="stylesheet" href="{{ url_for('static', filename='css/flags/flags.css') }}"/>
<div class="container">
<div class="panel panel-success">

Wyświetl plik

@ -47,7 +47,7 @@
<tr>
<td>{{ loop.index }}</td>
<td><a href="{{ url_for('device_detail', id=entry.device.id) }}">{% if entry.device.info is none %}{{ entry.device.address }}{% else %}{{ entry.device.info.registration }}{% endif %}</a></td>
<td>{% if entry.device.info is none %}(?){% else %}{{ entry.device.info.aircraft }}{% endif %}</td>
<td>{% if entry.device.info is none %}-{% else %}{{ entry.device.info.aircraft }}{% endif %}</td>
<td>{% if entry.takeoff_timestamp is not none and entry.takeoff_airport.id|string() == sel_airport %} {{ entry.takeoff_timestamp.strftime('%H:%M') }} {% endif %}</td>
<td>{% if entry.takeoff_track is not none and entry.takeoff_airport.id|string() == sel_airport %} {{ '%02d' | format(entry.takeoff_track/10) }} {% endif %}</td>
<td>{% if entry.landing_timestamp is not none and entry.landing_airport.id|string() == sel_airport %} {{ entry.landing_timestamp.strftime('%H:%M') }} {% endif %}</td>