""" Celery configuration for KeepItGoing. """ import os from celery import Celery from celery.schedules import crontab # Set the default Django settings module os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'config.settings') app = Celery('keepitgoing') # Load config from Django settings app.config_from_object('django.conf:settings', namespace='CELERY') # Auto-discover tasks in all installed apps app.autodiscover_tasks() # Celery Beat schedule for periodic tasks app.conf.beat_schedule = { 'send-due-reminders': { 'task': 'notifications.tasks.send_due_reminders', 'schedule': crontab(minute='*/5'), # Every 5 minutes }, 'check-overdue-tasks': { 'task': 'notifications.tasks.check_overdue_tasks', 'schedule': crontab(hour=8, minute=0), # Daily at 8 AM }, } @app.task(bind=True) def debug_task(self): print(f'Request: {self.request!r}')