서버에서 여러 동시 작성 요청을 해결하기위한 표준 설계 패턴이 있습니까? 예) 여러 클라이언트 (브라우저/모바일)가 웹 서비스를 호출하여 지정된 시간 동안 의사 약속을 만들 수 있습니다. 웹 서비스는 처음에는 의사가 무료인지 확인한 다음 생성하지만 여전히 경쟁 조건이 있으며 백엔드에서 여러 약속을 만드는 결과를 가져올 수 있습니다. 서버가 여러 약속을 만드는 것을 어떻게 막을 수 있습니까? webservice가 여러 개의 서버에서 실행되고 약속에는 고정 된 시간이 없습니다.복수 작성 조작 요청
0
A
답변
0
어떤 패턴이 확실하지 않습니다. 내가 생각할 수있는 하나의 아이디어.
1)는 약속이 이미 존재하는 경우 확인하기 위해 검사를 추가
if Appointment.where(time:, docter_id:).exists?
raise 'appointment already exists'
else
create_appointment
위는하지 수표를 존재 통과하고 있기 때문에 동시성의 성격의 중복 약속을 끝낼 수있는 가능성을 가지고있다. 이 문제에 대해 가능한 두 가지 옵션,
i) DB 제약 수준에서 검사를 시행합니다. docter_id, appointment_time의 고유 인덱스가 좋은 시작일 수 있습니다. 오류가 발생하면 이미 존재하므로 처리하십시오. 앱/스크립트에서 DB 레코드를 업데이트하기 위해 일관성을 보장하기 위해 DB 수준에서 제약 논리를 적용하는 것이 좋습니다.
ii) 두 번째 옵션 트랜잭션에 대한 테이블의 비관적 잠금을 생각할 수 있습니다. 레코드 만들기를 제안하지는 않습니다.
관련 문제
- 1. 서버에 복수 요청 보내기
- 2. 복수 AFHTTPClient 요청
- 3. 복수 요청/응답 인코더
- 4. 구근에 복수 요청
- 5. AngularJS 이미지 복수 요청
- 6. 복수 교차 출처 요청
- 7. android volley에서 복수 요청
- 8. iOS SDK의 복수 요청
- 9. CakePHP 복수 요청
- 10. PHP에 대한 복수 요청
- 11. SSRS 보고서에 복수 페이지 작성
- 12. 요청, 확인 및 조작 외부 요청
- 13. LoopBack 조작 후크는 복수 모델을 사용합니다
- 14. 'onKeyUp'검색에 대한 복수 요청 제거
- 15. 복수 요청 단일 응답 동기화
- 16. 오징어 캐시 동작 - 복수 요청
- 17. DFP 복수 요청 - 시작 시간
- 18. 서버 요청에 대한 복수 요청
- 19. asp.net 웹 양식에 복수 요청 "/"
- 20. 복수 응답을위한 비동기 요청 골격
- 21. 노드에서 복수 비동기 mongo 요청
- 22. 코 루틴, 루아의 복수 요청
- 23. 복수 사용자를위한 페이스 북 일괄 요청
- 24. HTTP POST 요청 작성
- 25. 파이썬 요청 (양식 작성)
- 26. 클래스 재 작성 C++ 복수 포함
- 27. 동일 시리즈의 복수 Birt 차트 작성
- 28. ssrs 보고서의 복수 열을 기반으로 부분합 작성
- 29. Htaccess URL 재 작성 - 복수 레벨
- 30. 웹 페이지에서 섹션 조작 - 확장 작성