File size: 1,068 Bytes
e3d8d4f
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
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()