Skip to content
Snippets Groups Projects
Commit 96b2ff31 authored by robinwilliam.hundt's avatar robinwilliam.hundt
Browse files

Changed no of gunicorn workers to 5 and type to sync

Using multiprocessing.Lock to synchronize access to creation of Assignment

fixes #130
parent 25351330
No related branches found
No related tags found
1 merge request!149Resolve "List index out of range when creating assignment"
Pipeline #91691 passed
......@@ -10,6 +10,8 @@ from core.models import TutorSubmissionAssignment
from core.permissions import IsReviewer, IsTutorOrReviewer
from core.serializers import AssignmentDetailSerializer, AssignmentSerializer
from multiprocessing import Lock
log = logging.getLogger(__name__)
......@@ -123,11 +125,13 @@ class AssignmentApiViewSet(
@permission_classes((IsTutorOrReviewer,))
def create(self, request, *args, **kwargs):
context = self.get_serializer_context()
serializer = AssignmentDetailSerializer(data=request.data,
context=context)
serializer.is_valid(raise_exception=True)
return self._fetch_assignment(serializer)
with Lock():
context = self.get_serializer_context()
serializer = AssignmentDetailSerializer(data=request.data,
context=context)
serializer.is_valid(raise_exception=True)
assignment = self._fetch_assignment(serializer)
return assignment
@permission_classes((IsTutorOrReviewer,))
def retrieve(self, request, *args, **kwargs):
......
......@@ -3,7 +3,7 @@ sleep 1
python manage.py migrate --noinput
gunicorn \
--bind 0.0.0.0:8000 \
--workers=2 \
--worker-class=gevent \
--workers=5 \
--worker-class=sync \
--log-level debug \
grady.wsgi:application
......@@ -5,7 +5,6 @@ djangorestframework~=3.8
git+https://github.com/robinhundt/djangorestframework-camel-case
Django~=2.1
drf-yasg~=1.12.0
gevent~=1.3.0
gunicorn~=19.9.0
psycopg2-binary~=2.7.0
python-json-logger~=0.1.0
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment