Как интегрировать Gevent с картой Django, Какие параметры необходимо изменить в файлах Settings.py и wsgi.py для интеграции.Интеграция Django Gevent
Я хочу запустить gevent http server (порт 8000) и gevent web socket server (порт 9000) из Django.
Как интегрировать Gevent с картой Django, Какие параметры необходимо изменить в файлах Settings.py и wsgi.py для интеграции.Интеграция Django Gevent
Я хочу запустить gevent http server (порт 8000) и gevent web socket server (порт 9000) из Django.
Самый простой способ - использовать Gunicorn и сообщить ему, чтобы использовать рабочий класс gevent. Документы Gunicorn довольно хороши. Для Django 1.4 или более поздней версии рекомендуемого способ начать Gunicorn просто назвать интерфейс WSGI как так:
gunicorn --worker-class gevent wsgi:application
Если вы не заботитесь обо всех приятных особенностей Gunicorn (как грациозные перезагружается для обновления не-времени простоя например), вы можете напрямую использовать сервер gevent wsgi. Я делаю это сам, чтобы сохранить некоторую память для некритических веб-сайтов, которые могут немного снизиться во время обновлений. Это мой файл «run_gevent.py», он должен быть довольно прост:
import gevent.monkey; gevent.monkey.patch_all()
import os, socket
from gevent.socket import socket as gsocket
from gevent.pywsgi import WSGIServer
from django.core.handlers.wsgi import WSGIHandler
script_dir = os.path.dirname(os.path.abspath(__file__))
pid_filename = os.path.join(script_dir, 'server.pid')
socket_filename = os.path.join(script_dir, 'server.sock')
pidfile = open(pid_filename, 'w')
pidfile.write(str(os.getpid()) + str('\n'))
pidfile.close()
server_socket = gsocket(socket.AF_UNIX, socket.SOCK_STREAM)
try:
os.remove(socket_filename)
except OSError:
pass
server_socket.bind(socket_filename)
server_socket.listen(256)
os.environ['DJANGO_SETTINGS_MODULE'] = 'project.settings'
server = WSGIServer(listener = server_socket, application = WSGIHandler(), log = None)
server.serve_forever(stop_timeout = 3)
Я размещаю этот файл на глобальном уровне, рядом с manage.py. –
Если вы не очень низко в памяти, я бы порекомендовал Gunicorn. Это делает жизнь намного легче для вас! –