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

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

QA

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

본문

여기 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

A2 로 동작하죠

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

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

답변을 작성하시기 전에 로그인 해주세요.
전체 123,125 | RSS
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT