Skip to content

Commit

Permalink
Merge pull request #819 from longguikeji/feature-12
Browse files Browse the repository at this point in the history
Feature 12
  • Loading branch information
hanbinloop authored May 10, 2022
2 parents c27b9e9 + 91f9560 commit d7b0f13
Show file tree
Hide file tree
Showing 2 changed files with 30 additions and 16 deletions.
2 changes: 0 additions & 2 deletions arkid/core/apps.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,5 +21,3 @@ def ready(self):
pass
# 监听
from arkid.core import listener
from arkid.core.event import Event, dispatch_event, APP_START
# dispatch_event(Event(tag=APP_START, tenant=tenant))
44 changes: 30 additions & 14 deletions arkid/core/tasks/tasks.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,14 @@
import os, django
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'arkid.settings')
django.setup()


from arkid.extension.models import TenantExtensionConfig, Extension
from arkid.core.models import SystemPermission
from arkid.core.openapi import get_permissions
from arkid.core.event import Event, dispatch_event, APP_START
from arkid.core.models import Tenant
from arkid.core.api import api
from django.db.models import Q
from arkid.config import get_app_config
from arkid.common.logger import logger
from types import SimpleNamespace
Expand All @@ -10,10 +19,7 @@

@shared_task(bind=True)
def sync(self, config_id, *args, **kwargs):
import os, django
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'arkid.settings')
django.setup()
from arkid.extension.models import TenantExtensionConfig, Extension

try:
logger.info("=== arkid.core.tasks.sync start...===")
logger.info(f"config_id: {config_id}")
Expand All @@ -37,14 +43,6 @@ def sync(self, config_id, *args, **kwargs):

@app.task
def update_system_permission():
import os, django
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'arkid.settings')
django.setup()
from arkid.core.models import SystemPermission
from arkid.core.openapi import get_permissions
from arkid.core.api import api
from django.db.models import Q

permissions_data = get_permissions(api)
group_data = []
api_data = []
Expand Down Expand Up @@ -148,4 +146,22 @@ def update_system_permission():
tenant=None,
is_system=True,
is_update=False
).delete()
).delete()

class ReadySingleton(object):
def __init__(self, *args, **kwargs):
pass

@classmethod
def get_instance(cls, *args, **kwargs):
if not hasattr(ReadySingleton, '_instance' ):
ReadySingleton._instance = ReadySingleton(*args, **kwargs)
# 只有celery第一次被启动时才会调用
tenant = Tenant.valid_objects.filter(
slug='',
name="platform tenant",
).first()
dispatch_event(Event(tag=APP_START, tenant=tenant))
return ReadySingleton._instance

ReadySingleton.get_instance()

0 comments on commit d7b0f13

Please sign in to comment.