db lock
This commit is contained in:
@ -52,6 +52,9 @@ def db_lock(func):
|
|||||||
|
|
||||||
|
|
||||||
class DbOper:
|
class DbOper:
|
||||||
|
"""
|
||||||
|
数据库操作基类
|
||||||
|
"""
|
||||||
_db: Session = None
|
_db: Session = None
|
||||||
|
|
||||||
def __init__(self, db: Session = None):
|
def __init__(self, db: Session = None):
|
||||||
@ -59,4 +62,3 @@ class DbOper:
|
|||||||
self._db = db
|
self._db = db
|
||||||
else:
|
else:
|
||||||
self._db = ScopedSession()
|
self._db = ScopedSession()
|
||||||
|
|
||||||
|
@ -2,7 +2,7 @@ import time
|
|||||||
from typing import Tuple, List
|
from typing import Tuple, List
|
||||||
|
|
||||||
from app.core.context import MediaInfo
|
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
|
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]:
|
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.get_by_state(self._db, state)
|
||||||
return Subscribe.list(self._db)
|
return Subscribe.list(self._db)
|
||||||
|
|
||||||
|
@db_lock
|
||||||
def delete(self, sid: int):
|
def delete(self, sid: int):
|
||||||
"""
|
"""
|
||||||
删除订阅
|
删除订阅
|
||||||
"""
|
"""
|
||||||
Subscribe.delete(self._db, rid=sid)
|
Subscribe.delete(self._db, rid=sid)
|
||||||
|
|
||||||
|
@db_lock
|
||||||
def update(self, sid: int, payload: dict) -> Subscribe:
|
def update(self, sid: int, payload: dict) -> Subscribe:
|
||||||
"""
|
"""
|
||||||
更新订阅
|
更新订阅
|
||||||
|
@ -1,6 +1,5 @@
|
|||||||
import logging
|
import logging
|
||||||
import threading
|
import threading
|
||||||
import traceback
|
|
||||||
from datetime import datetime, timedelta
|
from datetime import datetime, timedelta
|
||||||
from typing import List
|
from typing import List
|
||||||
|
|
||||||
@ -224,7 +223,7 @@ class Scheduler(metaclass=Singleton):
|
|||||||
try:
|
try:
|
||||||
job["func"](*args, **kwargs)
|
job["func"](*args, **kwargs)
|
||||||
except Exception as e:
|
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
|
self._jobs[job_id]["running"] = False
|
||||||
|
|
||||||
def list(self) -> List[schemas.ScheduleInfo]:
|
def list(self) -> List[schemas.ScheduleInfo]:
|
||||||
|
Reference in New Issue
Block a user