You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Telethon多脚本复用账号触发SQLite锁错误,如何跳过账号继续执行?

解决多脚本复用账号导致SQLite锁定的问题

直接修改代码,重点处理数据库锁定错误并跳过当前账号,同时避免资源泄露:

import sqlite3

for x in range(0,9999):
    for account in accounts:
        client = TelegramClient(account, api_id, api_hash)
        try:
            await client.connect()
            if await client.is_user_authorized():
                # 这里编写你的业务代码
                pass
        except sqlite3.OperationalError as e:
            # 仅处理数据库锁定的特定错误
            if "database is locked" in str(e).lower():
                print(f"账号 {account} 被占用,跳过")
                continue
            # 其他SQLite操作错误按原逻辑抛出
            else:
                raise
        finally:
            # 无论成功或失败,都关闭客户端释放连接
            await client.disconnect()

关键修改说明:

  • 精准错误判断:只针对"database is locked"错误执行跳过逻辑,避免误处理其他SQLite操作异常(如文件损坏、权限不足等)
  • 资源释放:通过finally块确保客户端连接一定会被关闭,防止资源泄露
  • 明确跳过逻辑:捕获锁定错误后,continue直接进入下一个账号的循环,不会终止整个脚本执行

内容的提问来源于stack exchange,提问作者Santos

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.03 04:05:57