rpc 通信和判题初步测试通过;判题服务器不再依赖 redis 和 mysql。

This commit is contained in:
virusdefender
2015-11-29 21:29:26 +08:00
parent 236102b6ac
commit 3311a4c899
15 changed files with 96 additions and 42 deletions

View File

@@ -6,4 +6,9 @@
\___/ |_| |_||_||_||_| |_| \___| \___/ \__,_| \__,_| \__, | \___| |_.__/ \__, | \__, | \__,_| \__,_|
|___/ |___/ |_|
https://github.com/QingdaoU/OnlineJudge
"""
"""
from __future__ import absolute_import
# This will make sure the app is always imported when
# Django starts so that shared_task will use this app.
from .celery import app as celery_app

17
oj/celery.py Normal file
View File

@@ -0,0 +1,17 @@
from __future__ import absolute_import
import os
from celery import Celery
# set the default Django settings module for the 'celery' program.
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'oj.settings')
from django.conf import settings
app = Celery('oj')
# Using a string here means the worker will not have to
# pickle the object when using Windows.
app.config_from_object('django.conf:settings')
app.autodiscover_tasks(lambda: settings.INSTALLED_APPS)

View File

@@ -22,6 +22,11 @@ REDIS_CACHE = {
"db": 1
}
# for celery
REDIS_HOST = "localhost"
REDIS_PORT = 6379
REDIS_DB = 0
DEBUG = True
ALLOWED_HOSTS = []

View File

@@ -31,6 +31,11 @@ REDIS_CACHE = {
"db": 1
}
# for celery
REDIS_HOST = os.environ.get("REDIS_PORT_6379_TCP_ADDR", "127.0.0.1")
REDIS_PORT = 6379
REDIS_DB = 0
DEBUG = False
ALLOWED_HOSTS = ['*']

View File

@@ -22,6 +22,15 @@ if ENV == "local":
elif ENV == "server":
from .server_settings import *
import djcelery
djcelery.setup_loader()
BROKER_BACKEND = "redis"
CELERY_ACCEPT_CONTENT = ['json']
CELERY_TASK_SERIALIZER = 'json'
CELERY_RESULT_SERIALIZER = 'json'
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
@@ -51,9 +60,12 @@ INSTALLED_APPS = (
'mq',
'contest',
'mail',
'judge',
'judge_dispatcher',
'django_extensions',
'rest_framework',
'djcelery',
)
if DEBUG: