doc: 添加热重载相关注释

This commit is contained in:
Rock Chin
2023-01-02 13:06:48 +08:00
parent f5bf012ba7
commit 85471fd0df
4 changed files with 13 additions and 3 deletions

View File

@@ -73,6 +73,9 @@ class QQBotManager:
else:
self.reply_filter = pkg.qqbot.filter.ReplyFilter([])
# 由于YiriMirai的bot对象是单例的且shutdown方法暂时无法使用
# 故只在第一次初始化时创建bot对象重载之后使用原bot对象
# 因此bot的配置不支持热重载
if first_time_init:
self.first_time_init(mirai_http_api_config)
else:
@@ -94,6 +97,10 @@ class QQBotManager:
go(self.on_group_message, (event,))
def unsubscribe_all():
"""取消所有订阅
用于在热重载流程中卸载所有事件处理器
"""
assert isinstance(self.bot, Mirai)
bus = self.bot.bus
assert isinstance(bus, mirai.models.bus.ModelEventBus)

View File

@@ -12,6 +12,7 @@ from main import log_colors_config
def walk(module, prefix=''):
"""遍历并重载所有模块"""
for item in pkgutil.iter_modules(module.__path__):
if item.ispkg:
walk(__import__(module.__name__ + '.' + item.name, fromlist=['']), prefix + item.name + '.')
@@ -29,6 +30,7 @@ def reload_all():
import main
main.stop()
# 重载所有模块
context = pkg.utils.context.context
walk(pkg)
importlib.reload(__import__('config'))

View File

@@ -2,6 +2,7 @@ import dulwich.porcelain
def update_all():
"""使用dulwich更新源码"""
try:
from dulwich import porcelain
repo = porcelain.open_repo('.')