Тестирование приложения Django во многих отдельных потоках - PullRequest
3 голосов
/ 14 декабря 2011

Я бы хотел запустить тесты моего приложения Django в нескольких потоках (возможно, десятках) параллельно.Это связано с тем, что мое приложение тратит почти все свое время на ожидание удаленных запросов, и я считаю, что если я буду выполнять тесты параллельно, все они будут работать одновременно, не замедляя друг друга, и весь пакет будет закончен довольнобыстро.

Но ... В настоящее время проводятся тесты с runserver Джанго, который является однопоточным.Так что он не сможет обслуживать десятки запросов параллельно.

(я использую Django ./manage.py test с django_nose для вызова тестов.)

У меня есть одна идея -используйте взамен devserver.Вопрос в том, будет ли он автоматически использоваться при вызове ./manage.py test?

И еще вопрос: я столкнулся с devserver довольно случайно, и я не знаю, есть ли у него конкуренты, которые могли бы быть лучше,Есть ли это?

Ответы [ 2 ]

0 голосов
/ 15 декабря 2011

используйте uWSGI

pip install uwsgi

Создать .ini для вашего проекта:

[uwsgi]
# set the http port
http = :8000
# change to django project directory
chdir = /var/www/myapp
# add /var/www to the pythonpath, in this way we can use the project.app format
pythonpath = /var/www
# set the project settings name
env = DJANGO_SETTINGS_MODULE=myapp.settings
# load django
module = django.core.handlers.wsgi:WSGIHandler()

Запустите его со встроенным http сервером

uwsgi --ini django.ini --async 10

async - количество потоков

http://projects.unbit.it/uwsgi/wiki/Quickstart

http://projects.unbit.it/uwsgi/wiki/Doc095

0 голосов
/ 15 декабря 2011

Я недавно начал изучать django-celery, который является асинхронной очередью задач для django Это позволяет ставить в очередь задачи для асинхронного выполнения, чтобы вам не приходилось ждать ответов. Его легко установить и начать, и оно позволит вашему приложению использовать асинхронную организацию очередей, а не просто набор тестов.

http://django -celery.readthedocs.org / ен / последний / получение стартером / index.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...