flare / spark_startup.py
ciyidogan's picture
Create spark_startup.py
e3456a9 verified
raw
history blame
1.42 kB
"""
Flare – Spark startup notifier
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
App lifecyle içinde Spark servisine /startup çağrısı yapar.
"""
import threading
import time
from typing import Dict, Any
import requests
from utils import log
from config_provider import ConfigProvider, VersionConfig, ProjectConfig
cfg = ConfigProvider.get()
def _select_live_version(p: ProjectConfig) -> VersionConfig | None:
published = [v for v in p.versions if v.published]
if not published:
return None
return max(published, key=lambda v: v.id)
def notify_startup():
spark_url = cfg.global_config.spark_endpoint
for p in cfg.projects:
if not p.enabled:
continue
v = _select_live_version(p)
if not v:
continue
body: Dict[str, Any] = {
"project_name": p.name,
"version_id": v.id,
"general_prompt": v.general_prompt,
"llm": v.llm.model_dump(),
}
try:
log(f"🚀 Notifying Spark /startup for project '{p.name}' …")
r = requests.post(f"{spark_url}/startup", json=body, timeout=10)
r.raise_for_status()
log(f"✅ Spark acknowledged startup ({r.status_code})")
except Exception as e:
log(f"⚠️ Spark startup failed: {e}")
def run_in_thread():
t = threading.Thread(target=notify_startup, daemon=True)
t.start()