yassonee commited on
Commit
064d5a9
·
verified ·
1 Parent(s): 78d26e0

Create run.py

Browse files
Files changed (1) hide show
  1. run.py +41 -0
run.py ADDED
@@ -0,0 +1,41 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import subprocess
2
+ import sys
3
+ import time
4
+ from threading import Thread
5
+ import os
6
+ import signal
7
+
8
+ def run_fastapi():
9
+ print("Starting FastAPI server...")
10
+ subprocess.run([sys.executable, "-m", "uvicorn", "app:app", "--host", "0.0.0.0", "--port", "8000"])
11
+
12
+ def run_streamlit():
13
+ print("Starting Streamlit server...")
14
+ subprocess.run([sys.executable, "-m", "streamlit", "run", "app.py"])
15
+
16
+ def main():
17
+ # Start FastAPI in a separate thread
18
+ fastapi_thread = Thread(target=run_fastapi)
19
+ fastapi_thread.daemon = True
20
+ fastapi_thread.start()
21
+
22
+ # Give FastAPI a moment to start
23
+ time.sleep(2)
24
+
25
+ # Start Streamlit
26
+ streamlit_thread = Thread(target=run_streamlit)
27
+ streamlit_thread.daemon = True
28
+ streamlit_thread.start()
29
+
30
+ try:
31
+ # Keep the main thread alive
32
+ while True:
33
+ time.sleep(1)
34
+ except KeyboardInterrupt:
35
+ print("\nShutting down servers...")
36
+ # Send SIGTERM to the current process group
37
+ os.killpg(os.getpgid(0), signal.SIGTERM)
38
+ sys.exit(0)
39
+
40
+ if __name__ == "__main__":
41
+ main()