테스트 사이트 - 개발 중인 베타 버전입니다

프로세싱중인 페이지를 여러명이 접속했을 때 채택완료

제이프로 7년 전 조회 2,107

여기 for문으로 db 회원 table의 특정 컬럼을 update하는 쿼리문이 존재하는 페이지가 있습니다.

=> [too_much_processing_page.php]

 

for($i = 0 ; $i < $member_count ; $i++){

    sql_fetch('update member_table set connected = 1' where = member_id = $member_count)

}

*for문 실행 후 해당 for문이 실행되었다는 값이 db에 저장됨

*for문이 실행되었었다면 다음날이 될 때 까지 작동하지 않도록 되어있음

 

위 작업이 

회원이 10000명 정도이기때문에 이 페이지가 작동하는 데에는 체감할 수 있을 정도의 시간이 소요됩니다.

 

a유져가 이 페이지에 접속하여 위 코드가 작동하는 동안 b유져가 해당 페이지에 접속하였다면 어떤 현상이 일어나나요? *cafe24 웹호스팅 이용

예상답변

A1. 해당 코드가 실행중이기 때문에 b유져는 a가 요청한 작업이 모두 끝난 후 페이지가 로드된다.-웹호스팅 프로세서가 1개이기 때문에 작업은 1개씩 가능하다.

A2. b가 접속하여도 동일하게 for문이 실행된다.-웹호스팅 프로세서가 여러개이기 때문에 다른 유져 요청에 영향을 받지 않는다.

 

댓글을 작성하려면 로그인이 필요합니다.

답변 1개

채택된 답변
+20 포인트
7년 전

A2 로 동작하죠

그에 따른 충돌은 예상해서 로직을 짜야 될겁니다.

DB 의 트랜잭션이라던지 트리거등을 이용해야죠

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

제이프로
7년 전
db쪽 개념이라 부담스럽네요...
감사합니다.

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인