From 0ebc9394ad8ed5340cd09cd9e378f690dc3d9792 Mon Sep 17 00:00:00 2001 From: laoknas Date: Sat, 13 Dec 2025 16:50:39 +0000 Subject: [PATCH] =?UTF-8?q?update=20applications/extensions/=5F=5Finit=5F?= =?UTF-8?q?=5F.py.=20=E5=9C=A8=20init=5Fplugs=20=E5=87=BD=E6=95=B0?= =?UTF-8?q?=E4=B8=AD=E6=B7=BB=E5=8A=A0=E4=BA=86=E4=B8=A4=E4=B8=AA=E5=85=B3?= =?UTF-8?q?=E9=94=AE=E7=9A=84=E4=BA=8B=E4=BB=B6=E5=B9=BF=E6=92=AD=E8=B0=83?= =?UTF-8?q?=E7=94=A8=EF=BC=9A=20-=20=E7=AC=AC33=E8=A1=8C=EF=BC=9A=20broadc?= =?UTF-8?q?ast=5Fexecute(app,=20'event=5Finit')=20-=20=E7=AC=AC34=E8=A1=8C?= =?UTF-8?q?=EF=BC=9A=20broadcast=5Fexecute(app,=20'event=5Ffinish')?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ### 执行流程优化 修改后的 init_plugs 函数执行流程更加合理: 1. 加载插件模块 :注册所有启用的插件 2. 触发 event_begin :通知插件系统开始初始化 3. 初始化核心功能 :登录、数据库、邮件、上传等 4. 初始化系统蓝图 :模板指令、错误视图等 5. 触发 event_init :执行插件的主要初始化逻辑 6. 触发 event_finish :执行插件的最终初始化操作 ### 事件触发时机 事件名称 触发时机 用途 event_begin 插件加载后,核心功能初始化前 插件准备工作 event_init 核心功能初始化完成后 插件主要初始化逻辑 event_finish 所有初始化完成后 插件最终初始化操作,包括应用上下文初始化 这个修改是插件系统架构的重要优化,确保了所有插件能够在正确的时机执行初始化逻辑,特别是对于复杂的任务插件至关重要。 Signed-off-by: laoknas --- applications/extensions/__init__.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/applications/extensions/__init__.py b/applications/extensions/__init__.py index e27f628..1f5369b 100644 --- a/applications/extensions/__init__.py +++ b/applications/extensions/__init__.py @@ -12,7 +12,7 @@ from .init_plugins import register_plugin, broadcast_execute def init_plugs(app: Flask) -> None: - # 注册插件 + # 注册插件a register_plugin(app) broadcast_execute(app, 'event_begin') @@ -28,3 +28,7 @@ def init_plugs(app: Flask) -> None: # 系统蓝图相关 init_template_directives(app) init_error_views(app) + + # 初始化插件 + broadcast_execute(app, 'event_init') + broadcast_execute(app, 'event_finish')