Fast IAAI implementation

This commit is contained in:
2026-04-24 00:20:42 +03:00
parent 2b0cffc118
commit 3cdb717789
31 changed files with 4880 additions and 0 deletions

View File

@@ -0,0 +1,38 @@
from __future__ import annotations
from celery import Celery
from celery.schedules import crontab
from iaai_sync_service.settings import get_settings
settings = get_settings()
app = Celery("iaai_sync_service")
app.conf.broker_url = settings.celery_broker_url
app.conf.result_backend = settings.celery_result_backend
app.conf.task_default_queue = "iaai_sync"
app.conf.timezone = "UTC"
app.conf.enable_utc = True
app.conf.broker_connection_retry = True
app.conf.broker_connection_retry_on_startup = True
app.conf.broker_connection_max_retries = None
def build_beat_schedule() -> dict[str, dict]:
schedule: dict[str, dict] = {
"sync-iaai-cars-every-hour": {
"task": "iaai.sync_cars_feed",
"schedule": crontab(minute=0),
"options": {"queue": "iaai_sync"},
}
}
if settings.session_keepalive_enabled:
schedule["keep-iaai-session-alive"] = {
"task": "iaai.keep_session_alive",
"schedule": crontab(minute=f"*/{settings.session_keepalive_interval_minutes}"),
"options": {"queue": "iaai_sync"},
}
return schedule
app.conf.beat_schedule = build_beat_schedule()
app.conf.imports = ("iaai_sync_service.tasks",)