perf: 优化用户详情页授权列表加载速度&添加可重入锁

This commit is contained in:
xinwen
2021-02-08 14:59:20 +08:00
committed by 老广
parent e599bca951
commit 9be3cbb936
22 changed files with 434 additions and 124 deletions

View File

@@ -0,0 +1,33 @@
from celery import shared_task
from django.utils.translation import gettext_lazy as _
from orgs.models import Organization
from orgs.utils import tmp_to_org
from ops.celery.decorator import register_as_period_task
from assets.utils import check_node_assets_amount
from common.utils.lock import AcquireFailed
from common.utils import get_logger
logger = get_logger(__file__)
@shared_task
def check_node_assets_amount_task(orgid=None):
if orgid is None:
orgs = [*Organization.objects.all(), Organization.default()]
else:
orgs = [Organization.get_instance(orgid)]
for org in orgs:
try:
with tmp_to_org(org):
check_node_assets_amount()
except AcquireFailed:
logger.error(_('The task of self-checking is already running and cannot be started repeatedly'))
@register_as_period_task(crontab='0 2 * * *')
@shared_task
def check_node_assets_amount_period_task():
check_node_assets_amount_task()