가져 오기 모듈이 있는데 줄 바꿈 된 txt 파일을 한 줄씩 처리해야합니다. 문제는 파일이 250K 라인을 초과 할 수 있다는 것입니다. MySQL 데이터베이스에서 SELECT 및 UPDATE 또는 INSERT 작업을 수행해야합니다. 이렇게하면 서버에서 최대 3-4 시간의 작업 시간이 소요될 수 있습니다. 처리 상태를 알려주는 상태 표시 줄을 배치하고 싶습니다. 나는 파일의 라인을 처리 할 때 입력을 업데이트하려고 시도했지만 브라우저가 실제로 출력 할 수는 없다. 그냥 멈췄다. 처리 상태를 어떻게 출력 할 수 있습니까?PHP 처리 탭 구분 된 txt 줄 단위로 진행률/상태 표시 줄
1
A
답변
1
브라우저에서 서버로의 연결이 시간 초과 될 수 있으므로이 작업을 비동기 적으로 수행해야합니다.
DB에 다른 테이블을 만들어 파일 처리 진행 상태를 유지할 수 있습니다. 100 또는 1000 줄 처리 할 때마다 해당 테이블의 레코드를 업데이트 할 수 있습니다.
클라이언트 측에서는 백엔드를 인터 로깅하고 해당 진행률 표에서 값을 가져 와서 자바 스크립트의 진행률 표시 줄을 업데이트 할 수 있습니다.
0
Maype 간단한 플러시() 작업 할 것입니다 : 당신의 윈도우-Server를 사용하여, 당신은 문서 페이지의 의견을 살펴해야 할 수도
// ...
$done++
if (($done % 1000) == 0) {
print "$done of $total lines processed<br />";
flush();
}
// ...
을, 몇 가지 단점이있을 것 같다 : http://php.net/manual/en/function.flush.php
감사합니다. jQuery AJAX를 사용하면 출력 할 수 있습니까? – Ervin
예 ... 큰 파일을 처리 할 백그라운드 프로세스를 시작하는 것이 좋습니다. –