""" 全局同步锁与同步模式标记 同步期间禁止所有写操作,前端显示同步遮罩 """ import threading _sync_lock = threading.Lock() _sync_in_progress = False _sync_mode = threading.local() def acquire_sync_lock() -> bool: """非阻塞获取同步锁,成功返回 True""" acquired = _sync_lock.acquire(blocking=False) if acquired: global _sync_in_progress _sync_in_progress = True _sync_mode.active = True return acquired def release_sync_lock(): """释放同步锁""" global _sync_in_progress _sync_in_progress = False _sync_mode.active = False _sync_lock.release() def is_syncing() -> bool: """检查是否正在同步""" return _sync_in_progress def is_sync_mode() -> bool: """检查当前线程是否在同步模式中(跳过 sync_version 自增)""" return getattr(_sync_mode, 'active', False)