fix Config reload

This commit is contained in:
jxxghp
2025-06-03 23:08:58 +08:00
parent b4ed2880f7
commit bbfd8ca3f5
22 changed files with 338 additions and 280 deletions

View File

@@ -14,14 +14,16 @@ from watchdog.observers.polling import PollingObserver
from app.chain import ChainBase
from app.chain.storage import StorageChain
from app.chain.transfer import TransferChain
from app.core.config import settings, on_config_change
from app.core.config import settings
from app.db.systemconfig_oper import SystemConfigOper
from app.helper.directory import DirectoryHelper
from app.helper.message import MessageHelper
from app.log import logger
from app.schemas import FileItem
from app.schemas.types import SystemConfigKey
from app.schemas.types import SystemConfigKey, EventType
from app.utils.singleton import Singleton
from app.core.event import Event, eventmanager
from app.schemas import ConfigChangeEventData
lock = Lock()
snapshot_lock = Lock()
@@ -86,7 +88,19 @@ class Monitor(metaclass=Singleton):
# 启动目录监控和文件整理
self.init()
@on_config_change([SystemConfigKey.Directories.value])
@eventmanager.register(EventType.ConfigChanged)
def handle_config_changed(self, event: Event):
"""
处理配置变更事件
:param event: 事件对象
"""
if not event:
return
event_data: ConfigChangeEventData = event.event_data
if event_data.key not in [SystemConfigKey.Directories.value]:
return
self.init()
def init(self):
"""
启动监控