From e5a9ccdcb187879140eed42f7ef11cc930bbef01 Mon Sep 17 00:00:00 2001 From: zhangkai <2403741920@qq.com> Date: Fri, 7 Nov 2025 16:31:18 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=81=9C=E6=AD=A2=E7=BA=BF?= =?UTF-8?q?=E7=A8=8B=E7=9A=84bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Module/FlaskService.py | 14 ++++++++++---- Module/Main.py | 8 ++++---- script/ScriptManager.py | 4 +++- 3 files changed, 17 insertions(+), 9 deletions(-) diff --git a/Module/FlaskService.py b/Module/FlaskService.py index ff7df49..1a49a4e 100644 --- a/Module/FlaskService.py +++ b/Module/FlaskService.py @@ -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) \ No newline at end of file + # 只有“明确是 Flask 进程”才跑副作用(通过 APP_ROLE 控制) + app.run("0.0.0.0", port=5000, debug=False, use_reloader=False, threaded=True) diff --git a/Module/Main.py b/Module/Main.py index 45e2a9c..b36a48b 100644 --- a/Module/Main.py +++ b/Module/Main.py @@ -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() + diff --git a/script/ScriptManager.py b/script/ScriptManager.py index 162b229..bf9f605 100644 --- a/script/ScriptManager.py +++ b/script/ScriptManager.py @@ -453,6 +453,8 @@ class ScriptManager(): # 设置查找深度 session.appium_settings({"snapshotMaxDepth": 15}) + session.appium_settings({"waitForQuiescence": False}) + # 创建udid名称的目录 AiUtils.makeUdidDir(udid) @@ -472,6 +474,7 @@ class ScriptManager(): # 循环条件。1、 循环关闭 2、 数据处理完毕 while not event.is_set(): print(f"关注打招呼开始循环,设备是:{udid}") + session.appium_settings({"waitForQuiescence": False}) LogManager.method_info("=== 外层 while 新一轮 ===", "关注打招呼", udid) if event.is_set(): @@ -1626,7 +1629,6 @@ class ScriptManager(): user_text = None info_count += 1 - print("当前页面的节点", session.source()) if user_text: print("点击进入用户主页")