From 9419f03f28e5377738bdcede3f72734b25be6345 Mon Sep 17 00:00:00 2001 From: Kozin <grot_artem@inbox.ru> Date: Wed, 22 Nov 2023 21:35:42 +0300 Subject: [PATCH] Changed the filtering of users of the task and the schedule --- backend/backend/settings.py | 2 +- backend/users/tasks.py | 7 ++++- infra_bt/docker-compose.production.yml | 40 ++++++++++++++++++++++++++ 3 files changed, 47 insertions(+), 2 deletions(-) diff --git a/backend/backend/settings.py b/backend/backend/settings.py index 4bb6b4d..0e6c72a 100644 --- a/backend/backend/settings.py +++ b/backend/backend/settings.py @@ -247,7 +247,7 @@ CELERY_BEAT_SCHEDULE = { 'delete_not_active_users': { 'task': 'users.tasks.delete_not_active_users', - 'schedule': crontab(minute='*/2'), + 'schedule': crontab(hour='*/24'), }, } diff --git a/backend/users/tasks.py b/backend/users/tasks.py index b741b1d..a47375c 100644 --- a/backend/users/tasks.py +++ b/backend/users/tasks.py @@ -1,5 +1,6 @@ from django.contrib.auth import get_user_model from django.db import transaction +from django.utils import timezone from backend import celery_app @@ -8,5 +9,9 @@ @celery_app.task def delete_not_active_users(): + tomorrow = timezone.now() - timezone.timedelta(days=1) with transaction.atomic(): - User.objects.filter(is_active=False).delete() + User.objects.filter( + is_active=False, + date_joined__lt=tomorrow, + ).exclude(role=User.DELETED).delete() diff --git a/infra_bt/docker-compose.production.yml b/infra_bt/docker-compose.production.yml index bf5ce2b..4712646 100644 --- a/infra_bt/docker-compose.production.yml +++ b/infra_bt/docker-compose.production.yml @@ -23,6 +23,18 @@ services: timeout: 3s retries: 5 + redis: + image: redis:alpine3.18 + hostname: redis + ports: + - "6379:6379" + restart: unless-stopped + healthcheck: + test: ["CMD", "redis-cli", "ping"] + interval: 5s + timeout: 3s + retries: 5 + backend: image: 1yunker/volunteers_backend env_file: .env @@ -33,6 +45,34 @@ services: db: condition: service_healthy + celery: + image: 1yunker/volunteers_backend + env_file: .env + volumes: + - static_data:/backend_static + - media_data:/app/media + command: celery -A backend.celery_app worker -l info + restart: unless-stopped + depends_on: + backend: + condition: service_started + redis: + condition: service_healthy + + celery-beat: + image: 1yunker/volunteers_backend + env_file: .env + volumes: + - static_data:/backend_static + - media_data:/app/media + command: celery -A backend beat -l info + restart: unless-stopped + depends_on: + backend: + condition: service_started + redis: + condition: service_healthy + frontend: image: 1yunker/volunteers_frontend command: cp -r /app/. /static_files/