클라이언트가 여러 데이터 값과 함께 여러 POST 요청을 보내는 Django 응용 프로그램을 설계하고 있습니다.이 데이터 값을 처리하는 함수를 설계했습니다.Django : 인쇄 기능을 호출하는 중 경쟁 조건
{('james', '17/07/2016'): ['17/07/2016', 'OneCell', '1']}
{('james', '17/07/2016'): ['17/07/2016', 'OneCell', '1']}
{('james', '17/07/2016'){('james', '17/07/2016'): ['17/07/2016', : 'OneCell'[, '17/07/2016', 'OneCell''1', ]'1'}]
}
: 내 view.py의 구조는
import ast
def update_database(username,request_dict):
user_status_dict = {}
user_status_dict_key = {}
user_status_dict_val = []
request_dict = ast.literal_eval(request_dict)
user_status_dict_key = (username,)
user_status_dict_key += (request_dict["date"],)
user_status_dict_val = [request_dict["date"],request_dict["dept"],request_dict["release"]]
user_status_dict[user_status_dict_key] = user_status_dict_val
print user_status_dict
는 또한 출력을 참조,
from django.http import HttpResponse
from django.shortcuts import render
from django.template import loader
from django.template import RequestContext
from django.views.decorators.csrf import csrf_exempt
from update_database import update_database
import time
@csrf_exempt
def index(request):
if request.body:
update_database(get_username(),request.body)
addStatusPage = loader.get_template('add_status.html')
return HttpResponse(addStatusPage.render(RequestContext(request)))
def get_username():
username = "james"
return(username)
하고 다음과 같은 process_data 함수의 구조 아래 같은 것입니다 때로는 방대한 양의 POST 요청이 도착하면 "user_status_dict"의 값에 이전 "user_status_dict"의 필드 중 일부가 추가됩니다. 나는 그것이 경쟁 조건 때문에라고 생각한다. 제발 날 돌려줘.
This http://stackoverflow.com/questions/1030270/race-conditions-in-django 도움이되지 않습니까? – ettanany
나는 이미 시도했지만 작동하지 않습니다. –
경쟁 조건을 소개하는 실제 코드를 표시하지 않으면 경쟁 조건을 해결하는 데 도움을 줄 수 없습니다. 질문을 관련 코드로 업데이트하십시오. – knbk