fix: 消除所有会导致STF断开连接的操作 - adb_connect移除kill-server硬重置(会断全网设备) - APK安装后不再adb_disconnect(IP:5555会断STF provider) - 扫描空闲设备不再adb connect/disconnect(直接标记空闲)
This commit is contained in:
+5
-12
@@ -74,20 +74,13 @@ def adb_connect(remote_adb_url, retries=5):
|
||||
|
||||
首次常因认证握手未就绪报 failed to authenticate,第2次重试通常 already connected。
|
||||
STF remoteConnect 启用后端口监听可能需要几秒,所以重试间隔递增。
|
||||
若全部重试失败,做一次 kill-server 硬重置后再试(long-running 进程的 adb daemon
|
||||
可能状态坏掉,必须重置)。硬重置在全局锁内,会短暂影响并发 worker,但只在万不得已时触发。
|
||||
|
||||
**绝不 kill-server**:kill-server 会断开所有设备的 adb transport,
|
||||
导致 STF provider 对全部设备误判离线并触发重连,影响所有运行中的任务。
|
||||
连接失败就返回 False,由调用方处理(标记任务失败,不影响其他设备)。
|
||||
"""
|
||||
with _ADB_LOCK:
|
||||
if _try_connect(remote_adb_url, retries):
|
||||
return True
|
||||
# 全部失败,硬重置 adb server
|
||||
_log.warning(f"{remote_adb_url} 重试耗尽,执行 kill-server 硬重置")
|
||||
_adb("kill-server")
|
||||
time.sleep(2)
|
||||
_adb("start-server")
|
||||
time.sleep(2)
|
||||
return _try_connect(remote_adb_url, 3)
|
||||
return False
|
||||
return _try_connect(remote_adb_url, retries)
|
||||
|
||||
|
||||
def _try_connect(remote_adb_url, retries):
|
||||
|
||||
Reference in New Issue
Block a user