diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 55361ce9cf73c8dd8e7b4698ad944427ccfaf571..d89455b164d8ab29f8e21dd43faa6c96aa406183 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 fefe9aec25ca52e48cd000b43f3548c5539faea3..b4d7f5dba93ba3e8ef7485c7143983378768c0ea 100755 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -47,6 +47,27 @@ services: hostname: redis networks: - redis_net + celery: + restart: always + build: . + command: celery -A core worker -l info + volumes: + - ./:/usr/src/app/ + depends_on: + - redis + - db + networks: + - redis_net + celery-beat: + build: . + command: celery -A core beat -l info + volumes: + - ./:/usr/src/app/ + depends_on: + - redis + - db + networks: + - redis_net networks: db_net: diff --git a/docker-entrypoint.sh b/docker-entrypoint.sh index 2b498754464761fb3a7e22bd4e0471dfb0b03723..28a92a0fb96e0cd2ee56b5f01f6abbbf445b98db 100755 --- a/docker-entrypoint.sh +++ b/docker-entrypoint.sh @@ -3,6 +3,12 @@ python3 manage.py migrate --run-syncdb python3 manage.py createfixtures python3 manage.py cleanuptasks -# sh import-data.sh + +file="docker-entrypoint.lock" +# exit if entrypoint.lock exists to prevent new import of data every time docker is restarted +if ! test -f "$file"; then + sh import-data.sh + touch $file +fi /usr/bin/supervisord -c "/etc/supervisor/conf.d/supervisord.conf" diff --git a/netex/settings.py b/netex/settings.py index c8895ef0ed26cbec119bd3d7001a3829fb21840e..9fff6f667a3bd82e647c90d6bde519ebf7ce92de 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(minute="*/3"), + } +} diff --git a/requirements.txt b/requirements.txt index 34ff3b679d5c7395c8e9d754895d1f753387cb5c..25c7c16152d39f4a5b04504e76122206731ad0c5 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.1.2 \ No newline at end of file