사용자가 임의 항목을 보내는 사이트를 구축 중입니다. 각보기에는 마지막으로 본 내용과 다음 무작위로 선택하는 항목에 대한 많은 변수 업데이트가 포함됩니다. 그러나 나는 그것에 대해 생각할 때 요청이 차례로 발생하고 사용자가 병렬 요청을하면 문제가 발생할 경우에만이 코드가 작동한다고 느꼈습니다. 이 문제가 진짜인지 또는 장고가 병렬 요청을 대기열로 처리하는지 궁금합니다. 이것이 진짜라면 새로운 요청 (두 번째 또는 세 번째 병렬 요청)을 "세션 당 한 요청 페이지"로 리디렉션 할 생각입니다. 나는 병렬 요청을하는 사용자의 기회를 알고 논리를 혼란시키는 것은 작지만 여전히 처리해야한다.병렬 요청 동일한 세션 django
0
A
답변
0
이러한 결정을 내리는 것은 장고의 일이 아닙니다. 이는 사용하려는 서버 기술 (예 : nginx, gunicorn, postgresql 등)과 관련이 있습니다.
웹 앱이 작동하도록하는 방식으로 앱을 디자인하면 (즉, 무국적) 걱정할 필요가 없습니다. 모든 동시성 관련 내용은 "진실의 단일 소스"에서 투명하게 처리되어야합니다. 귀하의 경우 데이터베이스에 있어야합니다.
웹 응용 프로그램의 디자인/논리가 이러한 원칙을 준수하지 않으면 결함이있는 것이므로 재 설계해야합니다.
앱이 특별한 경우라고 생각한다면 좀 더 구체적인 예를 제시하거나 더 나은 코드를 보여주세요.
0
동일한 사용자에 대한 병렬 요청이 장고 애플리케이션에서 가능하므로 직접 처리해야합니다. 좋은 원칙은 백엔드에서 상태가되는 것을 방지하는 것입니다. 프론트 엔드를 다시 디자인하여 상태를 처리 할 수 있는지 고려해보십시오. 그러나 이것이 항상 가능하지는 않습니다.
백엔드 상태를 유지하는 한 가지 방법은 Memcached, MongoDB 또는 Redis와 같은 빠른 메모리 내장 데이터베이스를 사용하는 것입니다. 나는 이것이 올바르게 사용된다면 원자 연산을 허용 할 것이라고 생각한다. 하나의 옵션은 원자 연산을 노출하는 Djangos cache framework을 사용하는 것입니다 (최소한 memcached가 지원할 때).
관련 문제
- 1. Zapier에서 동일한 세션 요청
- 2. Django : @user_passes_test와 동일한 세션
- 3. django 세션 테이블을 사용하여 요청
- 4. Django - Ajax 요청 세션 시작
- 5. 아파치 + mod_wsgi - 동일한 브라우저에서의 병렬 요청
- 6. 같은 상태 유지 세션 Bean을 참조하는 병렬 요청
- 7. 병렬 요청
- 8. cURL : 두 개의 별도 요청, 동일한 세션
- 9. 병렬 요청, 세션 (상점 시스템의 종류) 현재 프로젝트에서
- 10. 루비의 병렬 HTTP 요청
- 11. 플라스크, 병렬 요청 배포
- 12. 병렬 웹 서비스 요청
- 13. 레일 컨트롤러로부터의 병렬 요청
- 14. 병렬 http 요청
- 15. 템플릿의 Django 병렬 배열
- 16. Django 1.2 세션 손실
- 17. Django 세션 저장 모든 세션
- 18. Django 요청 경로
- 19. 요청 사이의 세션 손실
- 20. "요청 당 세션"패턴이 캐시를 활용합니까? ("세션 당 세션"또는 "요청 당 세션")
- 21. Node.js 웹 서버의 병렬 요청
- 22. 노드 js Express 병렬 요청
- 23. 비동기 병렬 요청 - 부분 렌더링
- 24. perl에서 병렬 http 요청 게시하기
- 25. 개조 된 병렬 HTTP 요청
- 26. Django 세션 : 수정시 세션 키 변경
- 27. jQuery에서 django 요청 세션 쿠키에 액세스하는 방법이 있습니까?
- 28. Django 템플릿의 하위 요청
- 29. backend.get_user에서 액세스 요청 세션.
- 30. mvp 세션 응답 요청
나는 약간 혼란 스럽다. "병렬 요청은 장고에서 가능하다"는 것은 무엇을 의미합니까? 모든 웹 앱에서 사용할 수 없습니까? 선택한 웹 컨테이너 (예 : gunicorn)를 사용하여 구성하는 것이 아닌가요? 당신은 장고에서 스레드 프로그래밍을합니까? 또한 django 세션 (백엔드에 상관없이)과 다른 내용에 대한 차이점은 무엇입니까? 아니면 암묵적으로 장고 세션 프레임 워크에 대해 이야기하고 있습니까? – rantanplan
@rantanplan 의견을 주셔서 감사합니다. 1. 예, 대부분의 웹 응용 프로그램에 대해 병렬 요청이 가능합니다. OP는 django가 어떻게 든 병렬로 처리하는 대신 동일한 사용자의 요청을 대기열에 넣었는지 물어 보았습니다. 2. 나는 때때로 장고에서 스레드 프로그래밍을하지만, 여기서는 관련이 없다. 3. 세션 프레임 워크에 대해 이야기하는 것이 아니라 캐시 기능에 더 가깝습니다. 난 장고 세션과 원자 작업을 할 수있는 방법을 언급하지 않았어 그래서 언급하지 않았어, 내가 틀렸다면 제안하고 자유롭게 대답 (나는 문서를 읽으려고)을 업데이 트거야. – Lycha
처음에는 요청의 동시성을 처리하는 코드 작성을 제안한다고 생각하기 때문에 다소 혼란 스러웠습니다. 나는 레디 스와 캐싱에있어 낯선 사람이 아닙니다. 단지 당신이 어떻게 그것으로 상태를 유지할 수 있는지, 그리고 그것이 더 단순 해지거나 더 복잡한 일을하는지 궁금합니다. 당신이 가리킬 수있는 예가 있습니까? 나는 진정으로 당신이 제안하는 것이 잘못되었거나 아닌지 모르겠다. 나는 비슷한 것을 보지 못했다는 것을 알고있다. 그리고 이것은 나를 음울하게 만든다. – rantanplan