diff --git a/conf/models.py b/conf/models.py index 33a6ae0..9a88fdf 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 f4025cc..59b7203 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