修正contest_submission逻辑

This commit is contained in:
zemal
2017-08-15 20:02:36 +08:00
parent 14b850c652
commit 7d11a596e5
3 changed files with 37 additions and 25 deletions

View File

@@ -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
View 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()