parent
b5d7b6fb53
commit
851864cd49
@ -306,8 +306,8 @@ def reload_module(_: schemas.TokenPayload = Depends(verify_token)):
|
|||||||
"""
|
"""
|
||||||
重新加载模块
|
重新加载模块
|
||||||
"""
|
"""
|
||||||
ModuleManager().stop()
|
ModuleManager().reload()
|
||||||
ModuleManager().load_modules()
|
Scheduler().init()
|
||||||
return schemas.Response(success=True)
|
return schemas.Response(success=True)
|
||||||
|
|
||||||
|
|
||||||
|
@ -267,7 +267,10 @@ class Command(metaclass=Singleton):
|
|||||||
停止事件处理线程
|
停止事件处理线程
|
||||||
"""
|
"""
|
||||||
self._event.set()
|
self._event.set()
|
||||||
self._thread.join()
|
try:
|
||||||
|
self._thread.join()
|
||||||
|
except Exception as e:
|
||||||
|
logger.error(f"停止事件处理线程出错:{str(e)} - {traceback.format_exc()}")
|
||||||
|
|
||||||
def get_commands(self):
|
def get_commands(self):
|
||||||
"""
|
"""
|
||||||
|
@ -51,6 +51,13 @@ class ModuleManager(metaclass=Singleton):
|
|||||||
if hasattr(module, "stop"):
|
if hasattr(module, "stop"):
|
||||||
module.stop()
|
module.stop()
|
||||||
|
|
||||||
|
def reload(self):
|
||||||
|
"""
|
||||||
|
重新加载所有模块
|
||||||
|
"""
|
||||||
|
self.stop()
|
||||||
|
self.load_modules()
|
||||||
|
|
||||||
def test(self, modleid: str) -> Tuple[bool, str]:
|
def test(self, modleid: str) -> Tuple[bool, str]:
|
||||||
"""
|
"""
|
||||||
测试模块
|
测试模块
|
||||||
|
@ -39,16 +39,21 @@ class Scheduler(metaclass=Singleton):
|
|||||||
定时任务管理
|
定时任务管理
|
||||||
"""
|
"""
|
||||||
# 定时服务
|
# 定时服务
|
||||||
_scheduler = BackgroundScheduler(timezone=settings.TZ,
|
_scheduler = None
|
||||||
executors={
|
|
||||||
'default': ThreadPoolExecutor(100)
|
|
||||||
})
|
|
||||||
# 退出事件
|
# 退出事件
|
||||||
_event = threading.Event()
|
_event = threading.Event()
|
||||||
# 锁
|
# 锁
|
||||||
_lock = threading.Lock()
|
_lock = threading.Lock()
|
||||||
|
# 各服务的运行状态
|
||||||
|
_jobs = {}
|
||||||
|
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
|
self.init()
|
||||||
|
|
||||||
|
def init(self):
|
||||||
|
"""
|
||||||
|
初始化定时服务
|
||||||
|
"""
|
||||||
|
|
||||||
def clear_cache():
|
def clear_cache():
|
||||||
"""
|
"""
|
||||||
@ -92,10 +97,19 @@ class Scheduler(metaclass=Singleton):
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# 停止定时服务
|
||||||
|
self.stop()
|
||||||
|
|
||||||
# 调试模式不启动定时服务
|
# 调试模式不启动定时服务
|
||||||
if settings.DEV:
|
if settings.DEV:
|
||||||
return
|
return
|
||||||
|
|
||||||
|
# 创建定时服务
|
||||||
|
self._scheduler = BackgroundScheduler(timezone=settings.TZ,
|
||||||
|
executors={
|
||||||
|
'default': ThreadPoolExecutor(100)
|
||||||
|
})
|
||||||
|
|
||||||
# CookieCloud定时同步
|
# CookieCloud定时同步
|
||||||
if settings.COOKIECLOUD_INTERVAL \
|
if settings.COOKIECLOUD_INTERVAL \
|
||||||
and str(settings.COOKIECLOUD_INTERVAL).isdigit():
|
and str(settings.COOKIECLOUD_INTERVAL).isdigit():
|
||||||
@ -385,6 +399,12 @@ class Scheduler(metaclass=Singleton):
|
|||||||
"""
|
"""
|
||||||
关闭定时服务
|
关闭定时服务
|
||||||
"""
|
"""
|
||||||
self._event.set()
|
try:
|
||||||
if self._scheduler.running:
|
if self._scheduler:
|
||||||
self._scheduler.shutdown()
|
self._event.set()
|
||||||
|
self._scheduler.remove_all_jobs()
|
||||||
|
if self._scheduler.running:
|
||||||
|
self._scheduler.shutdown()
|
||||||
|
self._scheduler = None
|
||||||
|
except Exception as e:
|
||||||
|
logger.error(f"停止定时任务失败::{str(e)} - {traceback.format_exc()}")
|
||||||
|
Loading…
x
Reference in New Issue
Block a user