feature/alembic-daf

This commit is contained in:
2026-05-12 09:00:32 -06:00
parent b0ce6c8a5a
commit ee9ac4f64f
19 changed files with 1203 additions and 717 deletions

View File

@@ -1,4 +1,5 @@
from typing import Any
import logging
from celery import Task
from sqlalchemy.orm import Session
@@ -7,6 +8,8 @@ from core.database import rls_company_var, rls_tenant_var
from .service import TaskTrackerService
logger = logging.getLogger(__name__)
def track_and_dispatch(
*,
@@ -28,12 +31,26 @@ def track_and_dispatch(
headers = {"rls_tenant_id": str(int(tenant_id))}
if company_id is not None:
headers["rls_company_id"] = str(int(company_id))
else:
logger.warning(
"Dispatching task without company_id in RLS headers task=%s tenant_id=%s",
getattr(task, "name", "<unknown>"),
tenant_id,
)
prev_tenant = rls_tenant_var.get()
prev_company = rls_company_var.get()
rls_tenant_var.set(int(tenant_id))
rls_company_var.set(int(company_id) if company_id is not None else None)
try:
logger.info(
"Dispatching Celery task task=%s task_id=%s tenant_id=%s company_id=%s headers=%s",
getattr(task, "name", "<unknown>"),
task_id,
tenant_id,
company_id,
headers,
)
celery_task = task.apply_async(
args=args or [],
kwargs=kwargs or {},