diff --git a/gradio_ui/app.py b/gradio_ui/app.py index 5057f45..77280de 100644 --- a/gradio_ui/app.py +++ b/gradio_ui/app.py @@ -316,6 +316,3 @@ def run(): stop_button.click(stop_app, [state], None) base_url.change(fn=update_base_url, inputs=[base_url, state], outputs=None) demo.launch(server_name="0.0.0.0", server_port=7888) - -if __name__ == "__main__": - demo.launch(server_name="0.0.0.0", server_port=7888) \ No newline at end of file diff --git a/main.py b/main.py index 00d01c0..845a0ca 100644 --- a/main.py +++ b/main.py @@ -24,34 +24,38 @@ def run(): text=True ) + stdout_thread = Thread( + target=stream_reader, + args=(server_process.stdout, "SERVER-OUT") + ) + + stderr_thread = Thread( + target=stream_reader, + args=(server_process.stderr, "SERVER-ERR") + ) + stdout_thread.daemon = True + stderr_thread.daemon = True + stdout_thread.start() + stderr_thread.start() + try: # 下载权重文件 download_weights.download() - print("启动Omniserver服务中,约5分钟左右,因为加载模型真的超级慢,请耐心等待!") - # 等待 server_process 打印出 "Started server process" + print("启动Omniserver服务中,因为加载模型真的超级慢,请耐心等待!") while True: - res = requests.get("http://127.0.0.1:8000/probe/") - if res.status_code == 200 and res.json().get("message", None): - print("Omniparser服务启动成功...") - break + try: + res = requests.get("http://127.0.0.1:8000/probe/", timeout=5) + if res.status_code == 200: + print("Omniparser服务启动成功...") + break + except (requests.ConnectionError, requests.Timeout): + pass if server_process.poll() is not None: - raise RuntimeError("Server process terminated unexpectedly") - time.sleep(5) + raise RuntimeError(f"服务器进程报错退出:{server_process.returncode}") + print("等待服务启动...") + time.sleep(10) - stdout_thread = Thread( - target=stream_reader, - args=(server_process.stdout, "SERVER-OUT") - ) - - stderr_thread = Thread( - target=stream_reader, - args=(server_process.stderr, "SERVER-ERR") - ) - stdout_thread.daemon = True - stderr_thread.daemon = True - stdout_thread.start() - stderr_thread.start() app.run() finally: if server_process.poll() is None: # 如果进程还在运行