Compare commits

...

3 Commits

2 changed files with 11 additions and 8 deletions

View File

@@ -187,14 +187,14 @@ class DatesLoginMetricMixin:
def get_dates_login_times_assets(self): def get_dates_login_times_assets(self):
assets = self.sessions_queryset.values("asset") \ assets = self.sessions_queryset.values("asset") \
.annotate(total=Count("asset", distinct=True)) \ .annotate(total=Count("asset")) \
.annotate(last=Cast(Max("date_start"), output_field=CharField())) \ .annotate(last=Cast(Max("date_start"), output_field=CharField())) \
.order_by("-total") .order_by("-total")
return list(assets[:10]) return list(assets[:10])
def get_dates_login_times_users(self): def get_dates_login_times_users(self):
users = self.sessions_queryset.values("user_id") \ users = self.sessions_queryset.values("user_id") \
.annotate(total=Count("user_id", distinct=True)) \ .annotate(total=Count("user_id")) \
.annotate(user=Max('user')) \ .annotate(user=Max('user')) \
.annotate(last=Cast(Max("date_start"), output_field=CharField())) \ .annotate(last=Cast(Max("date_start"), output_field=CharField())) \
.order_by("-total") .order_by("-total")

View File

@@ -134,9 +134,10 @@ def task_sent_handler(headers=None, body=None, **kwargs):
args, kwargs, __ = body args, kwargs, __ = body
try: try:
args = list(args) args = json.loads(json.dumps(list(args), cls=JSONEncoder))
kwargs = json.loads(json.dumps(kwargs, cls=JSONEncoder)) kwargs = json.loads(json.dumps(kwargs, cls=JSONEncoder))
except Exception as e: except Exception as e:
logger.error('Parse task args or kwargs error (Need handle): {}'.format(e))
args = [] args = []
kwargs = {} kwargs = {}
@@ -151,11 +152,13 @@ def task_sent_handler(headers=None, body=None, **kwargs):
request = get_current_request() request = get_current_request()
if request and request.user.is_authenticated: if request and request.user.is_authenticated:
data['creator'] = request.user data['creator'] = request.user
try:
CeleryTaskExecution.objects.create(**data) with transaction.atomic():
except Exception as e: try:
logger.error(e) CeleryTaskExecution.objects.create(**data)
CeleryTask.objects.filter(name=task).update(date_last_publish=timezone.now()) except Exception as e:
logger.error('Create celery task execution error: {}'.format(e))
CeleryTask.objects.filter(name=task).update(date_last_publish=timezone.now())
@receiver(django_ready) @receiver(django_ready)