diff --git a/backend/api/authentication/tasks.py b/backend/api/authentication/tasks.py new file mode 100644 index 0000000..f44f6ca --- /dev/null +++ b/backend/api/authentication/tasks.py @@ -0,0 +1,12 @@ +from celery import shared_task +from django.core.management import call_command + + +@shared_task +def flush_expired_tokens(): + """Flush expired tokens using Django's call_command""" + try: + call_command("flushexpiredtokens") + return "Successfully flushed expired tokens" + except Exception as e: + return f"Error flushing tokens: {str(e)}" diff --git a/backend/core/celery.py b/backend/core/celery.py index 93f29f8..50a4f43 100644 --- a/backend/core/celery.py +++ b/backend/core/celery.py @@ -1,6 +1,6 @@ import os from celery import Celery -# from celery.schedules import crontab +from celery.schedules import crontab os.environ.setdefault("DJANGO_SETTINGS_MODULE", "core.settings") @@ -8,4 +8,11 @@ app = Celery("Gallery Archiver") app.config_from_object("django.conf:settings", namespace="CELERY") +# Configure beat schedule +app.conf.beat_schedule = { + "auth.flush_expired_tokens": { + "task": "api.authentication.tasks.flush_expired_tokens", + "schedule": crontab(hour=2, minute=0), # Daily at 2:00 AM + }, +} app.autodiscover_tasks()