Lin / backend /celery_beat_config.py
Zelyanoth's picture
feat: Enhance security and configuration management
e3d8d4f
from celery import Celery
from celery.schedules import crontab
from backend.config import Config
def make_celery_beat(app_name=__name__):
"""Create and configure Celery Beat scheduler."""
celery_beat = Celery(app_name)
# Configure Celery Beat using the Flask app's config
celery_beat.conf.update(
broker_url=Config.CELERY_BROKER_URL,
result_backend=Config.CELERY_RESULT_BACKEND,
task_serializer='json',
accept_content=['json'],
result_serializer='json',
timezone='UTC',
enable_utc=True,
result_expires=3600, # Results expire after 1 hour
beat_schedule={
# Example scheduled tasks - adjust as needed
# 'example-task': {
# 'task': 'backend.tasks.example_task',
# 'schedule': crontab(minute=0, hour='*/6'), # Every 6 hours
# },
},
worker_prefetch_multiplier=1,
task_acks_late=True,
)
return celery_beat
# Create the Celery Beat instance
celery_beat = make_celery_beat()