modify: 视频推流

This commit is contained in:
2026-07-31 16:53:38 +08:00
parent e3265e40f0
commit 5f6b8c5269
7 changed files with 71 additions and 10 deletions
+15 -2
View File
@@ -21,13 +21,22 @@ async def create_workers(session, config, count=1, worker_manager=None):
db = Database(db_path)
await db.initialize()
# 初始化管理员
# 初始化管理员(多进程并发启动时必须幂等,避免 UNIQUE 约束冲突)
from sqlalchemy.exc import IntegrityError
async with db.get_session() as sess:
select_stmt = select(Users) \
.where(Users.username == "admin") # type: ignore
result = await sess.execute(select_stmt)
user: Users | None = result.scalar_one_or_none()
# 按用户名未命中时,再按邮箱兜底,避免历史数据中已存在同邮箱用户
if user is None:
select_stmt = select(Users) \
.where(Users.email == "admin@example.com") # type: ignore
result = await sess.execute(select_stmt)
user = result.scalar_one_or_none()
if user is None:
user = Users(
username="admin",
@@ -38,7 +47,11 @@ async def create_workers(session, config, count=1, worker_manager=None):
is_superuser=True
)
sess.add(user)
await sess.commit()
try:
await sess.commit()
except IntegrityError:
# 其他并发进程已抢先创建 admin,当前进程忽略即可
await sess.rollback()
set_global_var("db", db)