From b3c101bd79de2c463996c6c88e59e34ca1fe8e9c Mon Sep 17 00:00:00 2001 From: Andrew Godwin Date: Sun, 20 Mar 2016 17:06:51 -0700 Subject: [PATCH] Make test project useable in a production load testing setting --- testproject/Dockerfile | 19 +++++++++++++++++++ testproject/docker-compose.yml | 18 ++++++++++++++++++ testproject/testproject/asgi.py | 6 ++++++ testproject/testproject/settings.py | 8 ++++---- 4 files changed, 47 insertions(+), 4 deletions(-) create mode 100644 testproject/Dockerfile create mode 100644 testproject/docker-compose.yml create mode 100644 testproject/testproject/asgi.py diff --git a/testproject/Dockerfile b/testproject/Dockerfile new file mode 100644 index 0000000..354fcb7 --- /dev/null +++ b/testproject/Dockerfile @@ -0,0 +1,19 @@ +FROM ubuntu:16.04 + +MAINTAINER Andrew Godwin + +RUN apt-get update && \ + apt-get install -y \ + git \ + python-dev \ + python-setuptools \ + python-pip && \ + pip install -U pip + +RUN pip install channels==0.9.5 asgi_redis==0.8.3 + +RUN git clone https://github.com/andrewgodwin/channels.git /srv/application/ + +WORKDIR /srv/application/testproject/ + +EXPOSE 80 diff --git a/testproject/docker-compose.yml b/testproject/docker-compose.yml new file mode 100644 index 0000000..cf01e72 --- /dev/null +++ b/testproject/docker-compose.yml @@ -0,0 +1,18 @@ +version: '2' +services: + redis: + image: redis + daphne: + image: channels-test + build: . + command: daphne -b 0.0.0.0 -p 80 testproject.asgi:channel_layer + ports: + - "80:80" + depends_on: + - redis + worker: + image: channels-test + build: . + command: python manage.py runworker + depends_on: + - redis diff --git a/testproject/testproject/asgi.py b/testproject/testproject/asgi.py new file mode 100644 index 0000000..a43f6ae --- /dev/null +++ b/testproject/testproject/asgi.py @@ -0,0 +1,6 @@ +import os +from channels.asgi import get_channel_layer + +os.environ.setdefault("DJANGO_SETTINGS_MODULE", "my_project.settings") + +channel_layer = get_channel_layer() diff --git a/testproject/testproject/settings.py b/testproject/testproject/settings.py index ab336f3..741508c 100644 --- a/testproject/testproject/settings.py +++ b/testproject/testproject/settings.py @@ -29,10 +29,10 @@ DATABASES = { CHANNEL_LAYERS = { "default": { - "BACKEND": "asgiref.inmemory.ChannelLayer", + "BACKEND": "asgi_redis.RedisChannelLayer", "ROUTING": "testproject.urls.channel_routing", + "CONFIG": { + "hosts": [os.environ.get('REDIS_URL', 'redis://redis:6379')], + } }, } - -if os.environ.get("USEREDIS", None): - CHANNEL_BACKENDS['default']['BACKEND'] = "asgi_redis.RedisChannelLayer"