diff --git a/judge/judger_controller/tasks.py b/judge/judger_controller/tasks.py index 40c032b8..ceb3f4eb 100644 --- a/judge/judger_controller/tasks.py +++ b/judge/judger_controller/tasks.py @@ -10,8 +10,6 @@ from settings import docker_config, source_code_dir, test_case_dir, submission_d @app.task def judge(submission_id, time_limit, memory_limit, test_case_id): - r = redis.Redis(host=redis_config["host"], port=redis_config["port"], db=redis_config["db"]) - r.incr("judge_queue_length") try: command = "%s run -t -i --privileged --rm=true " \ "-v %s:/var/judger/test_case/ " \ @@ -39,4 +37,5 @@ def judge(submission_id, time_limit, memory_limit, test_case_id): (result["system_error"], str(e), submission_id)) conn.commit() conn.close() + r = redis.Redis(host=redis_config["host"], port=redis_config["port"], db=redis_config["db"]) r.decr("judge_queue_length") \ No newline at end of file diff --git a/submission/views.py b/submission/views.py index f8c631bf..1524643c 100644 --- a/submission/views.py +++ b/submission/views.py @@ -1,5 +1,6 @@ # coding=utf-8 import json +import redis from django.shortcuts import render @@ -7,6 +8,7 @@ from rest_framework.views import APIView from judge.judger.result import result from judge.judger_controller.tasks import judge +from judge.judger_controller.settings import redis_config from account.decorators import login_required from account.models import SUPER_ADMIN from problem.models import Problem @@ -41,6 +43,10 @@ class SubmissionAPIView(APIView): except Exception: return error_response(u"提交判题任务失败") + # 增加redis 中判题队列长度的计数器 + r = redis.Redis(host=redis_config["host"], port=redis_config["port"], db=redis_config["db"]) + r.incr("judge_queue_length") + return success_response({"submission_id": submission.id}) else: return serializer_invalid_response(serializer)