mirror of
https://github.com/QingdaoU/OnlineJudge.git
synced 2024-09-21 08:23:20 +00:00
将队列长度计数器改为 redis 计数器
This commit is contained in:
parent
771101ab13
commit
e4ff9e642a
@ -10,6 +10,8 @@ from settings import docker_config, source_code_dir, test_case_dir, submission_d
|
|||||||
|
|
||||||
@app.task
|
@app.task
|
||||||
def judge(submission_id, time_limit, memory_limit, test_case_id):
|
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:
|
try:
|
||||||
command = "%s run -t -i --privileged --rm=true " \
|
command = "%s run -t -i --privileged --rm=true " \
|
||||||
"-v %s:/var/judger/test_case/ " \
|
"-v %s:/var/judger/test_case/ " \
|
||||||
@ -37,3 +39,4 @@ def judge(submission_id, time_limit, memory_limit, test_case_id):
|
|||||||
(result["system_error"], str(e), submission_id))
|
(result["system_error"], str(e), submission_id))
|
||||||
conn.commit()
|
conn.commit()
|
||||||
conn.close()
|
conn.close()
|
||||||
|
r.decr("judge_queue_length")
|
@ -3,13 +3,17 @@ import redis
|
|||||||
import datetime
|
import datetime
|
||||||
from rest_framework.views import APIView
|
from rest_framework.views import APIView
|
||||||
from judge.judger.result import result
|
from judge.judger.result import result
|
||||||
|
from judge.judger_controller.settings import redis_config
|
||||||
from utils.shortcuts import success_response
|
from utils.shortcuts import success_response
|
||||||
from submission.models import Submission
|
from submission.models import Submission
|
||||||
|
|
||||||
|
|
||||||
class QueueLengthMonitorAPIView(APIView):
|
class QueueLengthMonitorAPIView(APIView):
|
||||||
def get(self, request):
|
def get(self, request):
|
||||||
waiting_number = Submission.objects.filter(result=result["waiting"]).count()
|
r = redis.Redis(host=redis_config["host"], port=redis_config["port"], db=redis_config["db"])
|
||||||
|
waiting_number = r.get("judge_queue_length")
|
||||||
|
if waiting_number is None:
|
||||||
|
waiting_number = 0
|
||||||
now = datetime.datetime.now()
|
now = datetime.datetime.now()
|
||||||
return success_response({"time": ":".join([str(now.hour), str(now.minute), str(now.second)]),
|
return success_response({"time": ":".join([str(now.hour), str(now.minute), str(now.second)]),
|
||||||
"count": waiting_number})
|
"count": waiting_number})
|
Loading…
Reference in New Issue
Block a user