From 84f5ce8a0b9af95cb12408b5550410faec0d85b5 Mon Sep 17 00:00:00 2001 From: jxxghp Date: Tue, 17 Oct 2023 21:07:38 +0800 Subject: [PATCH] db lock --- app/db/__init__.py | 4 +++- app/db/subscribe_oper.py | 5 ++++- app/scheduler.py | 3 +-- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/app/db/__init__.py b/app/db/__init__.py index cae4f8a3..1e88811a 100644 --- a/app/db/__init__.py +++ b/app/db/__init__.py @@ -52,6 +52,9 @@ def db_lock(func): class DbOper: + """ + 数据库操作基类 + """ _db: Session = None def __init__(self, db: Session = None): @@ -59,4 +62,3 @@ class DbOper: self._db = db else: self._db = ScopedSession() - diff --git a/app/db/subscribe_oper.py b/app/db/subscribe_oper.py index 574f2791..aac0f122 100644 --- a/app/db/subscribe_oper.py +++ b/app/db/subscribe_oper.py @@ -2,7 +2,7 @@ import time from typing import Tuple, List from app.core.context import MediaInfo -from app.db import DbOper +from app.db import DbOper, db_lock from app.db.models.subscribe import Subscribe @@ -11,6 +11,7 @@ class SubscribeOper(DbOper): 订阅管理 """ + @db_lock def add(self, mediainfo: MediaInfo, **kwargs) -> Tuple[int, str]: """ 新增订阅 @@ -57,12 +58,14 @@ class SubscribeOper(DbOper): return Subscribe.get_by_state(self._db, state) return Subscribe.list(self._db) + @db_lock def delete(self, sid: int): """ 删除订阅 """ Subscribe.delete(self._db, rid=sid) + @db_lock def update(self, sid: int, payload: dict) -> Subscribe: """ 更新订阅 diff --git a/app/scheduler.py b/app/scheduler.py index 131a7323..6c01e914 100644 --- a/app/scheduler.py +++ b/app/scheduler.py @@ -1,6 +1,5 @@ import logging import threading -import traceback from datetime import datetime, timedelta from typing import List @@ -224,7 +223,7 @@ class Scheduler(metaclass=Singleton): try: job["func"](*args, **kwargs) except Exception as e: - logger.error(f"定时任务 {job_id} 执行失败:{e} - {traceback.print_exc()}") + logger.error(f"定时任务 {job_id} 执行失败:{e}") self._jobs[job_id]["running"] = False def list(self) -> List[schemas.ScheduleInfo]: