From 0fe5b10418dc6ac6813beb7dc2e587adbb4a34cf Mon Sep 17 00:00:00 2001 From: virusdefender Date: Tue, 24 Jan 2017 13:22:12 +0800 Subject: [PATCH] add judge server status field --- conf/models.py | 7 +++++++ conf/serializers.py | 1 + 2 files changed, 8 insertions(+) diff --git a/conf/models.py b/conf/models.py index 33a6ae06..9a88fdfb 100644 --- a/conf/models.py +++ b/conf/models.py @@ -1,4 +1,5 @@ from django.db import models +from django.utils import timezone class SMTPConfig(models.Model): @@ -38,6 +39,12 @@ class JudgeServer(models.Model): task_number = models.IntegerField(default=0) service_url = models.CharField(max_length=128, blank=True, null=True) + @property + def status(self): + if (timezone.now() - self.last_heartbeat).total_seconds() > 5: + return "abnormal" + return "normal" + class Meta: db_table = "judge_server" diff --git a/conf/serializers.py b/conf/serializers.py index f4025cca..59b7203c 100644 --- a/conf/serializers.py +++ b/conf/serializers.py @@ -43,6 +43,7 @@ class WebsiteConfigSerializer(serializers.ModelSerializer): class JudgeServerSerializer(serializers.ModelSerializer): create_time = DateTimeTZField() last_heartbeat = DateTimeTZField() + status = serializers.CharField() class Meta: model = JudgeServer