diff --git a/.gitignore b/.gitignore index be1817a..d43614a 100644 --- a/.gitignore +++ b/.gitignore @@ -10,3 +10,4 @@ shapefiles/ openrural/settings/local.py *.DS_Store .vagrant +*.swp diff --git a/openrural/periodic_tasks/__init__.py b/openrural/periodic_tasks/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/openrural/periodic_tasks/models.py b/openrural/periodic_tasks/models.py new file mode 100644 index 0000000..71a8362 --- /dev/null +++ b/openrural/periodic_tasks/models.py @@ -0,0 +1,3 @@ +from django.db import models + +# Create your models here. diff --git a/openrural/periodic_tasks/tasks.py b/openrural/periodic_tasks/tasks.py new file mode 100644 index 0000000..a5aa065 --- /dev/null +++ b/openrural/periodic_tasks/tasks.py @@ -0,0 +1,18 @@ +from celery.task import Task, PeriodicTask +from celery.registry import tasks +from datetime import timedelta + +from ebpub.db.bin.update_aggregates import update_all_aggregates + +class AggregatesTask(PeriodicTask): + + name = 'openrural.aggregates' + run_every = timedelta(hours=12) + + def run(self, dry_run=False, reset=False): + logger = self.get_logger() + logger.info("Starting aggregates task") + update_all_aggregates(dry_run, reset) + logger.info("Stopping aggregates task") + +tasks.register(AggregatesTask) diff --git a/openrural/settings/base.py b/openrural/settings/base.py index 9abeea0..d009102 100644 --- a/openrural/settings/base.py +++ b/openrural/settings/base.py @@ -35,6 +35,7 @@ 'openrural', 'gunicorn', 'openrural.data_dashboard', + 'openrural.periodic_tasks', 'django.contrib.messages', ) + INSTALLED_APPS TEMPLATE_DIRS = (os.path.join(PROJECT_DIR, 'templates'), ) + TEMPLATE_DIRS