From 54273443c85ac2c6bdbbd7000a77a82eeadfb0ab Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E5=BC=BA?= <1206709430@qq.com> Date: Sat, 8 Jul 2023 15:05:09 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8A=9F=E8=83=BD=E5=8F=98=E5=8C=96:=20?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0signal=20=E4=BF=A1=E5=8F=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/dvadmin/system/management/commands/init.py | 6 ++++-- backend/dvadmin/system/signals.py | 12 ++++++++++++ 2 files changed, 16 insertions(+), 2 deletions(-) create mode 100644 backend/dvadmin/system/signals.py diff --git a/backend/dvadmin/system/management/commands/init.py b/backend/dvadmin/system/management/commands/init.py index d7602e2..c026164 100644 --- a/backend/dvadmin/system/management/commands/init.py +++ b/backend/dvadmin/system/management/commands/init.py @@ -3,6 +3,7 @@ import logging from django.core.management.base import BaseCommand from application import settings +from dvadmin.system import signals logger = logging.getLogger(__name__) @@ -29,9 +30,9 @@ class Command(BaseCommand): reset = True if isinstance(options.get("n"), list) or isinstance(options.get("N"), list): reset = False - + signals.pre_init_complete.send(msg='开始初始化', data={"reset": reset}) for app in settings.INSTALLED_APPS: - + signals.detail_init_complete.send(msg='初始化中', data={"app": app, "reset": reset}) try: exec( f""" @@ -50,4 +51,5 @@ main(reset={reset}) ) except ModuleNotFoundError: pass + signals.post_init_complete.send(msg='初始化完成', data={"reset": reset}) print("初始化数据完成!") diff --git a/backend/dvadmin/system/signals.py b/backend/dvadmin/system/signals.py new file mode 100644 index 0000000..32db628 --- /dev/null +++ b/backend/dvadmin/system/signals.py @@ -0,0 +1,12 @@ +from django.dispatch import Signal +# 初始化信号 +pre_init_complete = Signal(providing_args=['msg', 'data']) +detail_init_complete = Signal(providing_args=['msg', 'data']) +post_init_complete = Signal(providing_args=['msg', 'data']) +# 租户初始化信号 +pre_tenants_init_complete = Signal(providing_args=['msg', 'data']) +detail_tenants_init_complete = Signal(providing_args=['msg', 'data']) +post_tenants_init_complete = Signal(providing_args=['msg', 'data']) +post_tenants_all_init_complete = Signal(providing_args=['msg', 'data']) +# 租户创建完成信号 +tenants_create_complete = Signal(providing_args=['msg', 'data'])