PHP 대량 작업 처리 시간 초과 없 는 해결 방법

본 고 는 PHP 가 대량 작업 처 리 를 할 때 시간 을 초과 하지 않 는 해결 방법 을 실례 로 분석 하 였 다.여러분 께 참고 하도록 공유 하 겠 습 니 다.구체 적 으로 는 다음 과 같 습 니 다.
PHP 일괄 작업 처리
PHP 는 임 무 를 대량으로 처리 할 때 시간 을 초과 합 니 다.사실 해결 방법 은 매우 간단 합 니 다.즉,임 무 를 분할 하고 한 번 에 일부분 을 처리 하 는 것 입 니 다.임무 진 도 는 서버 에 두 어도 되 고 클 라 이언 트 에 두 어도 됩 니 다.복잡 하지 않 으 면 클 라 이언 트 에 두 고 js 로 처리 하면 됩 니 다.
클 라 이언 트 js 리 셋 처리
클 라 이언 트 가 처리 할 때 한 곳 에 머 물 러 야 합 니 다.바로 ajax 를 사용 하여 처리 할 때 ajax 는 비동기 입 니 다.for 순환 을 사용 하여 처리 할 때 대량 요청 일 뿐 입 니 다.이렇게 작업 양 이 많 을 때 직접 DDoS 서버 를 사용 하기 때문에 리 셋 함수 가 돌아 올 때 까지 기 다 렸 다가 다음 요청 을 해 야 합 니 다.
클 라 이언 트 예
파일:index.html

<!DOCTYPE html>
<html>
<head>
 <title></title>
 <script type="text/javascript" src="http://libs.baidu.com/jquery/1.11.3/jquery.min.js"></script>
 <script type="text/javascript">
 $(function(){
  $("#Jidsall").click(function(){
   $(".Jids").prop("checked", this.checked);
  });
  $("#btn_request").click(function(){
   //     
   var task = {};
   //     
   task.list = $(".Jids:checked").toArray();
   //     
   task.i = 0;
   //      
   task.next = function() {
    if (this.i >= this.list.length) {
     //     
     this.done();
     return;
    }
    var i = this.i;
    //     
    var error = function(data){
     //      
     console.log("error", data.id);
     //     
     this.next();
    };
    //     
    var success = function(data){
     //      
     console.log("success", data.id);
     //     
     this.next();
    };
    $.ajax({
     context: this,
     method: "post",
     url: "do.php",
     data: {id:this.list[i].value},
     error: error,
     success: success,
     dataType: "json"
    });
    this.i++;
   };
   //     
   task.done = function() {
    console.log("done");
   };
   //   
   task.next();
  });
 });
 </script>
</head>
<body>
<table>
 <tr><td><input type="checkbox" id="Jidsall">all</td></tr>
 <tr><td><input type="checkbox" value="1" class="Jids">1</td></tr>
 <tr><td><input type="checkbox" value="2" class="Jids">2</td></tr>
 <tr><td><input type="checkbox" value="3" class="Jids">3</td></tr>
 <tr><td><input type="checkbox" value="4" class="Jids">4</td></tr>
 <tr><td><input type="checkbox" value="5" class="Jids">5</td></tr>
 <tr><td><input type="checkbox" value="6" class="Jids">6</td></tr>
 <tr><td><input type="checkbox" value="7" class="Jids">7</td></tr>
 <tr><td><input type="checkbox" value="8" class="Jids">8</td></tr>
 <tr><td><input type="checkbox" value="9" class="Jids">9</td></tr>
 <tr><td><input type="button" id="btn_request" value="  "></td></tr>
</table>
</body>
</html>

PHP 대량 작업 처리 예 서버 예
파일:do.php

<?php
sleep(3);
if ($_POST["id"] == 5) {
 http_response_code(500);
 exit();
}
echo json_encode($_POST);

더 많은 PHP 관련 내용 에 관심 이 있 는 독자 들 은 본 사이트 의 주 제 를 볼 수 있다.
본 논문 에서 말 한 것 이 여러분 의 PHP 프로 그래 밍 에 도움 이 되 기 를 바 랍 니 다.

좋은 웹페이지 즐겨찾기