From 9bddc29da4216d1b12becc90869ab179d8077f04 Mon Sep 17 00:00:00 2001 From: ibuler Date: Sat, 29 Sep 2018 10:44:52 +0800 Subject: [PATCH] =?UTF-8?q?[Update]=20=E6=9A=82=E6=97=B6=E4=B8=8D=E5=AD=98?= =?UTF-8?q?status=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/terminal/serializers.py | 23 ++++++++++------------- apps/terminal/views/terminal.py | 3 +++ 2 files changed, 13 insertions(+), 13 deletions(-) diff --git a/apps/terminal/serializers.py b/apps/terminal/serializers.py index 425eae8b1..6933e2896 100644 --- a/apps/terminal/serializers.py +++ b/apps/terminal/serializers.py @@ -1,6 +1,7 @@ # -*- coding: utf-8 -*- # +from django.core.cache import cache from django.utils import timezone from rest_framework import serializers from rest_framework_bulk.serializers import BulkListSerializer @@ -28,19 +29,8 @@ class TerminalSerializer(serializers.ModelSerializer): @staticmethod def get_is_alive(obj): - try: - status = obj.status_set.latest() - except Status.DoesNotExist: - status = None - - if not status: - return False - - delta = timezone.now() - status.date_created - if delta < timezone.timedelta(seconds=600): - return True - else: - return False + key = StatusSerializer.CACHE_KEY_PREFIX + str(obj.id) + return cache.get(key) class SessionSerializer(BulkSerializerMixin, serializers.ModelSerializer): @@ -57,11 +47,18 @@ class SessionSerializer(BulkSerializerMixin, serializers.ModelSerializer): class StatusSerializer(serializers.ModelSerializer): + CACHE_KEY_PREFIX = 'terminal_status_' class Meta: fields = '__all__' model = Status + def create(self, validated_data): + terminal_id = str(validated_data['terminal'].id) + key = self.CACHE_KEY_PREFIX + terminal_id + cache.set(key, 1, 60) + return validated_data + class TaskSerializer(BulkSerializerMixin, serializers.ModelSerializer): diff --git a/apps/terminal/views/terminal.py b/apps/terminal/views/terminal.py index a28fedeec..1adf09513 100644 --- a/apps/terminal/views/terminal.py +++ b/apps/terminal/views/terminal.py @@ -93,6 +93,9 @@ class TerminalAcceptView(SuperUserRequiredMixin, JSONResponseMixin, UpdateView): class TerminalConnectView(LoginRequiredMixin, SuperUserRequiredMixin, DetailView): + """ + Abandon + """ template_name = 'flash_message_standalone.html' model = Terminal