Files
thrilltrack-explorer/django/config/celery_beat_schedule.py
gpt-engineer-app[bot] e2b0368a62 Set up auto metric collection
Add Django Celery tasks and utilities to periodically collect system metrics (error rates, response times, queue sizes) and record them into metric_time_series. Include monitoring app scaffolding, metrics collector, Celery beat schedule, middleware for live metrics, and a Supabase edge function for cross-source metrics.
2025-11-11 02:09:55 +00:00

55 lines
1.6 KiB
Python

"""
Celery Beat schedule configuration for periodic tasks.
Import this in your Django settings.
"""
from celery.schedules import crontab
CELERY_BEAT_SCHEDULE = {
# Collect all system metrics every minute
'collect-system-metrics': {
'task': 'monitoring.collect_system_metrics',
'schedule': 60.0, # Every 60 seconds
'options': {'queue': 'monitoring'}
},
# Collect error metrics every minute
'collect-error-metrics': {
'task': 'monitoring.collect_error_metrics',
'schedule': 60.0,
'options': {'queue': 'monitoring'}
},
# Collect performance metrics every minute
'collect-performance-metrics': {
'task': 'monitoring.collect_performance_metrics',
'schedule': 60.0,
'options': {'queue': 'monitoring'}
},
# Collect queue metrics every 30 seconds
'collect-queue-metrics': {
'task': 'monitoring.collect_queue_metrics',
'schedule': 30.0,
'options': {'queue': 'monitoring'}
},
# Existing user tasks
'cleanup-expired-tokens': {
'task': 'users.cleanup_expired_tokens',
'schedule': crontab(hour='*/6', minute=0), # Every 6 hours
'options': {'queue': 'maintenance'}
},
'cleanup-inactive-users': {
'task': 'users.cleanup_inactive_users',
'schedule': crontab(hour=2, minute=0, day_of_week=1), # Weekly on Monday at 2 AM
'options': {'queue': 'maintenance'}
},
'update-user-statistics': {
'task': 'users.update_user_statistics',
'schedule': crontab(hour='*', minute=0), # Every hour
'options': {'queue': 'analytics'}
},
}