From 966fb53f3be0c4b88dd3de6fa5d4fec5bef532ed Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Konstantin=20Gru=CC=88ndger?= Date: Sun, 14 Apr 2019 22:07:52 +0200 Subject: [PATCH] Add celery task for Melissas ogn range statistics --- README.md | 1 + ogn_python/collect/celery.py | 12 +++++++++++- ogn_python/collect/ognrange.py | 4 ++-- ogn_python/commands/stats.py | 6 +++--- 4 files changed, 17 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 0b933e6..be02aa9 100644 --- a/README.md +++ b/README.md @@ -171,6 +171,7 @@ Most commands are command groups, so if you execute this command you will get fu - `ogn_python.collect.celery.update_receivers_country_code` - Update country code in receivers table if None. - `ogn_python.collect.celery.purge_old_data` - Delete AircraftBeacons and ReceiverBeacons older than given 'age'. - `ogn_python.collect.celery.update_stats` - Create stats and update receivers/devices with stats. +- `ogn_python.collect.celery.update_ognrange` - Create receiver coverage stats for Melissas ognrange. If the task server is up and running, tasks could be started manually. Here we compute takeoffs and landings for the past 90 minutes: diff --git a/ogn_python/collect/celery.py b/ogn_python/collect/celery.py index 846a1c6..5bea387 100644 --- a/ogn_python/collect/celery.py +++ b/ogn_python/collect/celery.py @@ -12,9 +12,10 @@ from ogn_python.collect.database import update_country_code as receivers_update_ from ogn_python.collect.stats import create_device_stats, update_device_stats_jumps, create_receiver_stats, create_relation_stats, update_qualities, update_receivers, update_devices +from ogn_python.collect.ognrange import update_entries as receiver_coverage_update_entries + from ogn_python import db from ogn_python import celery -from ogn_python.model import receiver logger = get_task_logger(__name__) @@ -97,3 +98,12 @@ def update_stats(day_offset): update_qualities(session=db.session, date=date) update_receivers(session=db.session) update_devices(session=db.session) + + +@celery.task(name='update_ognrange') +def update_ognrange(day_offset): + """Create receiver coverage stats for Melissas ognrange.""" + + date = datetime.datetime.today() + datetime.timedelta(days=day_offset) + + receiver_coverage_update_entries(session=db.session, date=date) diff --git a/ogn_python/collect/ognrange.py b/ogn_python/collect/ognrange.py index 2002f26..ebddfd6 100644 --- a/ogn_python/collect/ognrange.py +++ b/ogn_python/collect/ognrange.py @@ -8,8 +8,8 @@ from ogn_python.utils import date_to_timestamps from ogn_python import app -def create_receiver_coverage(session, date, logger=None): - """Create receiver coverages.""" +def update_entries(session, date, logger=None): + """Create receiver coverage stats for Melissas ognrange.""" if logger is None: logger = app.logger diff --git a/ogn_python/commands/stats.py b/ogn_python/commands/stats.py index 5e7d0b1..c2af4ca 100644 --- a/ogn_python/commands/stats.py +++ b/ogn_python/commands/stats.py @@ -10,7 +10,7 @@ from ogn_python.collect.stats import create_device_stats, create_receiver_stats, update_qualities, update_receivers as update_receivers_command, update_devices as update_devices_command,\ update_device_stats_jumps -from ogn_python.collect.ognrange import create_receiver_coverage +from ogn_python.collect.ognrange import update_entries as update_receiver_coverages from ogn_python import db @@ -105,11 +105,11 @@ def update_mgrs(start, end): @click.argument('start') @click.argument('end') def create_ognrange(start=None, end=None): - """Create stats for Melissas ognrange.""" + """Create receiver coverage stats for Melissas ognrange.""" days = get_database_days(start, end) pbar = tqdm(days) for single_date in pbar: pbar.set_description(datetime.strftime(single_date, '%Y-%m-%d')) - result = create_receiver_coverage(session=db.session, date=single_date) + result = update_receiver_coverages(session=db.session, date=single_date)