From 599c033ae858746b1c94037ecfdb414598c4cb3c Mon Sep 17 00:00:00 2001
From: "Hartung, Michael" <michael.hartung@uni-hamburg.de>
Date: Mon, 16 May 2022 14:57:25 +0200
Subject: [PATCH] integration of celery to fetch nedrex db

Former-commit-id: cf1f37f2a61eff6cbd7455549f45e2099dcbb3dd [formerly 84cb09416f4ea3535e01d2705898aafb18906922]
Former-commit-id: 7b623a1c00c1c1284883fcacbf582580f63bd9fe
---
 .gitlab-ci.yml     | 10 +++++-----
 docker-compose.yml | 17 +++++++++++++++++
 netex/settings.py  | 13 +++++++++++++
 requirements.txt   |  3 ++-
 4 files changed, 37 insertions(+), 6 deletions(-)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 55361ce..d89455b 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -18,10 +18,10 @@ check:test:
     - python manage.py test
 
 deploy:dev:
-  image: registry.blitzhub.io/docker
-  stage: deploy
   only:
     - development
+  image: registry.blitzhub.io/docker
+  stage: deploy
   services:
     - name: registry.blitzhub.io/docker:dind
       alias: docker
@@ -37,11 +37,11 @@ deploy:dev:
     - check:lint
     - check:test
 
-deploy:prod:
-  image: registry.blitzhub.io/docker
-  stage: deploy
+deploy:prod:  
   only:
     - production
+  image: registry.blitzhub.io/docker
+  stage: deploy
   when: manual
   services:
     - name: registry.blitzhub.io/docker:dind
diff --git a/docker-compose.yml b/docker-compose.yml
index 6221aaf..c40e05c 100755
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -46,6 +46,23 @@ services:
     networks:
       - redis_net
 
+  celery:
+    restart: always
+    build: ./backend
+    command: celery -A core worker -l info
+    volumes:
+      - ./backend/:/usr/src/app/
+    depends_on:
+      - redis
+
+  celery-beat:
+    build: ./backend
+    command: celery -A core beat -l info
+    volumes:
+      - ./backend/:/usr/src/app/
+    depends_on:
+      - redis
+
 networks:
   db_net:
   redis_net:
diff --git a/netex/settings.py b/netex/settings.py
index c8895ef..b232a9b 100755
--- a/netex/settings.py
+++ b/netex/settings.py
@@ -12,6 +12,9 @@ https://docs.djangoproject.com/en/3.0/ref/settings/
 
 import os
 
+# celery beat
+from celery.schedules import crontab
+
 # Build paths inside the project like this: os.path.join(BASE_DIR, ...)
 BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
 
@@ -169,3 +172,13 @@ CACHES = {
         }
     }
 }
+
+CELERY_BROKER_URL = "redis://redis:6379"
+CELERY_RESULT_BACKEND = "redis://redis:6379"
+
+CELERY_BEAT_SCHEDULE = {
+    "update_db": {
+        "task": "control.celery_tasks.task_update_db_from_nedrex",
+        "schedule": crontab(hour=12, minute=15, day_of_week='sun'),
+    }
+}
diff --git a/requirements.txt b/requirements.txt
index 34ff3b6..6ea24ad 100755
--- a/requirements.txt
+++ b/requirements.txt
@@ -28,4 +28,5 @@ rq==1.3.0
 six==1.15.0
 sqlparse==0.3.1
 urllib3==1.25.10
-sqlalchemy==1.3.23
\ No newline at end of file
+sqlalchemy==1.3.23
+celery==5.2.6
\ No newline at end of file
-- 
GitLab