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

ajax 대량 등록시 채택완료

포인트적립 2년 전 조회 1,927

ajax로  데이터 전송해서

디비 처리부분에서 

대략 10만건 정도를 for문 돌면서 insert 쿼리문을 실행하면

504 gateway timeout 에러가 발생하는데요

 

검색하면 연결시간? 때문이라는거 같아서

ini_set('max_execution_time', '0');

이렇게도 해보고  php.ini 에서도 초를 늘려보고 했는데

계속 gwateway timeout 이 발생하는데  이오류 안나게 가능한 팁같은게 있을가요?

오류는 발생했어도  db에는 10만건이 등록이 계속 되드라고요....

몇번째 지우고 테스트중인데 해결이 안되네용 조언좀 부탁드립니다 

감사합니다~

 

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

답변 3개

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

php 쪽 timeout 설정 뿐만이 아닌

nginx 또는 apache 의 timeout 도 늘려줘야 하지만

기본적으로 클라이언트 브라우저에서도 timeout 이 있고,

이를 이용하는 최종 유저에게 브라우저 설정을 수정하라고 전달 할수는 없는 노릇입니다.

 

그렇기 때문에 대용량 작업에서 실시간 처리량을 확인하려면 방법 자체를 바꿔야 합니다.

유저마다 구분할수 있는 세션키 문자열 기반으로

언제든지 접근해 상태를 확인할수 있는 중간 매개체를 만드는 방법이 있습니다.

그 중간 매개체는 db / memory 또는 file 일수도 있고 구성하기 나름입니다.

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

답변에 대한 댓글 1개

포인트적립
2년 전
10만건 2천건씩 분할해서 등록하게 만들었네요 3초정도 걸리네요 윽 머리아퍼라

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

파일 업로드(ajax) 후에

 Load data query를 이용해 보세요

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

답변에 대한 댓글 1개

포인트적립
2년 전
첨부로는 안해봤는데 참고해서 공부좀 해보겠습니다 ^^

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

2년 전

ajax로  데이터 전송할 때 한꺼번에 모두 전송할 것이 아니라

데이터를 나누어서 ajax를 여러번 실행 되도록 하면 됩니다

 

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

답변에 대한 댓글 1개

포인트적립
2년 전
10만건 2천건씩 분할로 어찌어찌 해결은 했네요... 급한불 껏으니 나중에 또 생각을 ㅋㅋ

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

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

로그인