修正contest_submission逻辑
This commit is contained in:
@@ -1,19 +1,19 @@
|
||||
import json
|
||||
import requests
|
||||
import hashlib
|
||||
import json
|
||||
import logging
|
||||
from urllib.parse import urljoin
|
||||
|
||||
import requests
|
||||
from django.core.cache import cache
|
||||
from django.db import transaction
|
||||
from django.db.models import F
|
||||
from django_redis import get_redis_connection
|
||||
from django.core.cache import cache
|
||||
|
||||
from judge.languages import languages
|
||||
from account.models import User
|
||||
from conf.models import JudgeServer, JudgeServerToken
|
||||
from problem.models import Problem, ProblemRuleType, ContestProblem
|
||||
from contest.models import ContestRuleType, ACMContestRank, OIContestRank
|
||||
from judge.languages import languages
|
||||
from problem.models import Problem, ProblemRuleType, ContestProblem
|
||||
from submission.models import JudgeStatus, Submission
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
@@ -25,7 +25,7 @@ WAITING_QUEUE = "waiting_queue"
|
||||
def process_pending_task(redis_conn):
|
||||
if redis_conn.llen(WAITING_QUEUE):
|
||||
# 防止循环引入
|
||||
from submission.tasks import judge_task
|
||||
from judge.tasks import judge_task
|
||||
data = json.loads(redis_conn.rpop(WAITING_QUEUE))
|
||||
judge_task.delay(**data)
|
||||
|
||||
|
||||
8
judge/tasks.py
Normal file
8
judge/tasks.py
Normal file
@@ -0,0 +1,8 @@
|
||||
from __future__ import absolute_import, unicode_literals
|
||||
from celery import shared_task
|
||||
from judge.dispatcher import JudgeDispatcher
|
||||
|
||||
|
||||
@shared_task
|
||||
def judge_task(submission_id, problem_id):
|
||||
JudgeDispatcher(submission_id, problem_id).judge()
|
||||
Reference in New Issue
Block a user