43 lines
1.2 KiB
Python
43 lines
1.2 KiB
Python
from __future__ import annotations
|
|
|
|
from celery import Celery
|
|
|
|
from .config import get_settings
|
|
|
|
settings = get_settings()
|
|
|
|
celery_app = Celery(
|
|
"fquiz",
|
|
broker=settings.resolved_celery_broker_url,
|
|
backend=settings.resolved_celery_result_backend,
|
|
include=[
|
|
"app.tasks.schedule_tasks",
|
|
"app.tasks.elevation_tasks",
|
|
"app.tasks.worker_registry_tasks",
|
|
],
|
|
)
|
|
|
|
celery_app.conf.update(
|
|
accept_content=["json"],
|
|
beat_schedule={
|
|
"expire-overdue-schedule-items": {
|
|
"task": "app.tasks.schedule_tasks.expire_overdue_schedule_items",
|
|
"schedule": settings.scheduler_expire_interval_seconds,
|
|
},
|
|
"sweep-worker-registry-offline": {
|
|
"task": "app.tasks.worker_registry_tasks.sweep_worker_registry_offline",
|
|
"schedule": 30.0,
|
|
},
|
|
},
|
|
enable_utc=True,
|
|
result_serializer="json",
|
|
task_acks_late=True,
|
|
task_serializer="json",
|
|
task_track_started=True,
|
|
timezone=settings.celery_timezone,
|
|
worker_prefetch_multiplier=1,
|
|
)
|
|
|
|
# Register worker lifecycle signals for auto-registration/heartbeat/offline states.
|
|
from . import worker_signals as _worker_signals # noqa: F401,E402
|