ciyidogan commited on
Commit
e3456a9
·
verified ·
1 Parent(s): 38415cf

Create spark_startup.py

Browse files
Files changed (1) hide show
  1. spark_startup.py +51 -0
spark_startup.py ADDED
@@ -0,0 +1,51 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """
2
+ Flare – Spark startup notifier
3
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
4
+ App lifecyle içinde Spark servisine /startup çağrısı yapar.
5
+ """
6
+
7
+ import threading
8
+ import time
9
+ from typing import Dict, Any
10
+
11
+ import requests
12
+ from utils import log
13
+ from config_provider import ConfigProvider, VersionConfig, ProjectConfig
14
+
15
+ cfg = ConfigProvider.get()
16
+
17
+
18
+ def _select_live_version(p: ProjectConfig) -> VersionConfig | None:
19
+ published = [v for v in p.versions if v.published]
20
+ if not published:
21
+ return None
22
+ return max(published, key=lambda v: v.id)
23
+
24
+
25
+ def notify_startup():
26
+ spark_url = cfg.global_config.spark_endpoint
27
+ for p in cfg.projects:
28
+ if not p.enabled:
29
+ continue
30
+ v = _select_live_version(p)
31
+ if not v:
32
+ continue
33
+
34
+ body: Dict[str, Any] = {
35
+ "project_name": p.name,
36
+ "version_id": v.id,
37
+ "general_prompt": v.general_prompt,
38
+ "llm": v.llm.model_dump(),
39
+ }
40
+ try:
41
+ log(f"🚀 Notifying Spark /startup for project '{p.name}' …")
42
+ r = requests.post(f"{spark_url}/startup", json=body, timeout=10)
43
+ r.raise_for_status()
44
+ log(f"✅ Spark acknowledged startup ({r.status_code})")
45
+ except Exception as e:
46
+ log(f"⚠️ Spark startup failed: {e}")
47
+
48
+
49
+ def run_in_thread():
50
+ t = threading.Thread(target=notify_startup, daemon=True)
51
+ t.start()