修改停止线程的bug

This commit is contained in:
2025-11-07 16:31:18 +08:00
parent fa539aef73
commit e5a9ccdcb1
3 changed files with 17 additions and 9 deletions

View File

@@ -233,8 +233,14 @@ def start_socket_listener():
pass
# 独立线程启动 Socket 服务 + 看门狗
listener_thread = threading.Thread(target=start_socket_listener, daemon=True)
listener_thread.start()
def bootstrap_server_side_effects():
# 仅在真正的 Flask 进程里启动副作用监听、定时器、MQ 等)
listener_thread = threading.Thread(target=start_socket_listener, daemon=True)
listener_thread.start()
# 获取app
def get_app():
return app
# ============ API 路由 ============
@app.route('/deviceList', methods=['GET'])
@@ -836,5 +842,5 @@ def restartTikTok():
return ResultData(data="").toJson()
if __name__ == '__main__':
# 注意:这里建议 debug=False避免未来有人改成 use_reloader=True 导致多进程
app.run("0.0.0.0", port=5000, debug=False, use_reloader=False, threaded=True)
# 只有“明确是 Flask 进程”才跑副作用(通过 APP_ROLE 控制)
app.run("0.0.0.0", port=5000, debug=False, use_reloader=False, threaded=True)

View File

@@ -3,7 +3,6 @@
import os
import sys
from pathlib import Path
from Utils.LogManager import LogManager
import logging
@@ -30,11 +29,11 @@ LOG_DIR.mkdir(exist_ok=True) # 确保 log 目录存在
print(f"日志目录: {LOG_DIR}")
def _run_flask_role():
from Module import FlaskService
from Module.FlaskService import get_app, bootstrap_server_side_effects
print("Flask Pid:", os.getpid())
port = int(os.getenv("FLASK_COMM_PORT", "34566")) # 固定端口的兜底仍是 34567
app_factory = getattr(FlaskService, "create_app", None)
app = app_factory() if callable(app_factory) else FlaskService.app
app = get_app()
bootstrap_server_side_effects()
app.run(host="0.0.0.0", port=port + 1, debug=False, use_reloader=False, threaded=False)
if "--role=flask" in sys.argv:
@@ -92,3 +91,4 @@ if __name__ == "__main__":
finally:
# 进程退出前记得把子进程关掉
manager.stop()