Files
Ai/dashboard_data/tasks.py
T

37 lines
1011 B
Python
Raw Normal View History

2026-03-22 01:09:09 +03:30
from config.celery import app
from .services import CARD_BUILDERS, build_dashboard_payload_with_cache
@app.task(bind=True)
def generate_dashboard_data_task(self, sensor_id: str) -> dict:
total_cards = len(CARD_BUILDERS)
self.update_state(
state="PROGRESS",
meta={
"current": 0,
"total": total_cards,
"card": None,
"message": "loading sensor context",
},
)
payload = {}
dashboard_payload = build_dashboard_payload_with_cache(sensor_id)
for index, card_name in enumerate(CARD_BUILDERS.keys(), start=1):
self.update_state(
state="PROGRESS",
meta={
"current": index,
"total": total_cards,
"card": card_name,
"message": f"processing {card_name}",
},
)
payload[card_name] = dashboard_payload.get(card_name, {})
return {
"sensor_id": sensor_id,
"all_cards": payload,
}