extend 자동실행 중복 관련

extend 자동실행 중복 관련

QA

extend 자동실행 중복 관련

그누보드5(영카트) 버전

5.4.5.5

사용 PHP 버전

7.4

본문

안녕하세요

YoungCart Version 5.4.5.5.1

사용중입니다.

 

extend 폴더 하위에 .php파일이 자동실행되고 있는데

 

1년정도 중복없이 실행되다가 이번달에 처음으로 sql insert 가 2번 실행된 것을 확인하였습니다.

 

insert time도 초까지 동일하게 찍힌 상황입니다.

   2025-05-14 00:12:32

   2025-05-14 00:12:32

 

extend 자동실행이 중복으로도 실행될수 있나요?

 

현재는 중복방지 코드로 먼저 insert 된게 있는지 $sql_2에서 $chk가 true이면 넘어가도록 했는데

똑같은 시간에 중복실행된 경우라면 서로 false인 상태라

동시 insert는 어떻게 방지할 수 있을까요?

 

$sql_1 = " select * from my_table_1 where my_condition_1 < 999  ";
$rs = sql_query($sql_1);

 

while($row = sql_fetch_array($rs)) {
        
    $sql_2 = " select my_data from my_table_2 where my_condition_2 = '등록' ";
    
    $chk = sql_fetch($sql_2);
    if($chk['my_data']) {
        continue;
    }

    insert_function();
}

이 질문에 댓글 쓰기 :

답변 3

이런 유형은 프로그램 레벨에서 중복처리를 하면 동시성 처리에서 실패해 중복 처리될 가능성이 많습니다.
DB 레벨에서 Primary Key 또는 Unique Key 를 설정하고 UPSERT 형태로 구성하면

https://dev.mysql.com/doc/refman/5.7/en/insert-on-duplicate.html
설정한 Key 기반의 데이터에 대해 유일성을 보장하면서 소스도 간결해집니다.

동시접속자가 많아지면 중복으로 처리될수 있습니다.

모든 페이지에서 실행되는거라서 경우에 따라서 중복이 될 수도 있을수 있을거 같습니다.

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

회원로그인

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