feat: 设备自动发现——定时扫描局域网+Tailscale 网段开放 adb 5555 的设备进入待连接池,用户确认后才加入正式设备池(不自动连接);socket 并发探测+adb 短超时验证(state=device 过滤 unauthorized),配置存 app_meta 可前端调整;配套:adb_connect_light 验证短超时、DISABLE_SCHEDULER 回归开关

This commit is contained in:
2026-08-30 10:57:07 +08:00
parent 1e39f5490a
commit 4efe17c1c9
11 changed files with 591 additions and 10 deletions
+10 -2
View File
@@ -337,7 +337,12 @@ class TaskManager:
def __init__(self, app=None):
self.app = app # Flask app,用于 db context
self.scheduler = BackgroundScheduler(timezone="Asia/Shanghai")
self.scheduler.start()
if os.environ.get("DISABLE_SCHEDULER"):
# 测试/回归模式:不启动 cron 调度器,避免 test_client 加载任务后
# 按 cron 真的跑任务(干扰回归、占用设备)。add_job 仍可调用不报错。
_log.info("DISABLE_SCHEDULER=1:跳过 cron 调度器(测试/回归模式)")
else:
self.scheduler.start()
start_watchdog() # 启动心跳看门狗
self.groups = {} # name -> DeviceGroup(内存业务对象)
self.jobs = {} # id -> TaskJob(内存业务对象)
@@ -881,4 +886,7 @@ class TaskManager:
self.stop_all()
self._fg_scanner.stop()
stop_watchdog()
self.scheduler.shutdown(wait=False)
try:
self.scheduler.shutdown(wait=False)
except Exception:
pass # DISABLE_SCHEDULER 模式下 scheduler 未 start,shutdown 会抛异常