PHP进行批量任务处理不超时的解决方法


Posted in PHP onJuly 11, 2016

本文实例分析了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 相关文章推荐
php xfocus防注入资料
Apr 27 PHP
一步一步学习PHP(8) php 数组
Mar 05 PHP
php高级编程-函数-郑阿奇
Jul 04 PHP
PHP utf-8编码问题,utf8编码,数据库乱码,页面显示输出乱码
Apr 08 PHP
关于查看MSSQL 数据库 用户每个表 占用的空间大小
Jun 21 PHP
php 强制下载文件实现代码
Oct 28 PHP
php自动加载autoload机制示例分享
Feb 20 PHP
Zend Framework实现多文件上传功能实例
Mar 21 PHP
一段实用的php验证码函数
May 19 PHP
php实现基于openssl的加密解密方法
Sep 30 PHP
PHP 中TP5 Request 请求对象的实例详解
Jul 31 PHP
php和C#的yield迭代器实现方法对比分析
Jul 17 PHP
PHP封装的数据库保存session功能类
Jul 11 #PHP
php中array_column函数简单实现方法
Jul 11 #PHP
PHP针对字符串开头和结尾的判断方法
Jul 11 #PHP
php进行ip地址掩码运算处理的方法
Jul 11 #PHP
php解析xml 的四种简单方法(附实例)
Jul 11 #PHP
php进程间通讯实例分析
Jul 11 #PHP
Adnroid 微信内置浏览器清除缓存
Jul 11 #PHP
You might like
《神奇女侠:血脉》神力女超人大战犯罪公司
2020/04/09 欧美动漫
smarty获得当前url的方法分享
2014/02/14 PHP
PHP函数实现分页含文本分页和数字分页
2014/10/23 PHP
php删除一个路径下的所有文件夹和文件的方法
2018/02/07 PHP
Javascript 阻止javascript事件冒泡,获取控件ID值
2009/06/27 Javascript
JavaScript子类用Object.getPrototypeOf去调用父类方法解析
2013/12/05 Javascript
Jquery实现点击按钮,连续地向textarea中添加值的实例代码
2014/03/08 Javascript
js入门之Function函数的使用方法【新手必看】
2016/11/22 Javascript
js单页hash路由原理与应用实战详解
2017/08/14 Javascript
基于Vue自定义指令实现按钮级权限控制思路详解
2018/05/23 Javascript
AngularJS实现动态切换样式的方法分析
2018/06/26 Javascript
在微信小程序中渲染HTML内容的方法示例
2018/09/28 Javascript
通过JS判断网页是否为手机打开
2020/10/28 Javascript
[04:03]2014DOTA2西雅图国际邀请赛 LGD战队巡礼
2014/07/07 DOTA
用Python进行行为驱动开发的入门教程
2015/04/23 Python
Python正则表达式使用范例分享
2016/12/04 Python
Python读取sqlite数据库文件的方法分析
2017/08/07 Python
python将回车作为输入内容的实例
2018/06/23 Python
Python3.6.2调用ffmpeg的方法
2019/01/10 Python
Python设计模式之策略模式实例详解
2019/01/21 Python
python实现倒计时小工具
2019/07/29 Python
为什么黑客都用python(123个黑客必备的Python工具)
2020/01/31 Python
在脚本中单独使用django的ORM模型详解
2020/04/01 Python
Python文件时间操作步骤代码详解
2020/04/13 Python
控制工程专业个人求职信
2013/09/25 职场文书
合作意向书模板
2014/03/31 职场文书
护理专业自荐书
2014/06/04 职场文书
项目转让协议书
2014/10/27 职场文书
学校党的群众路线教育实践活动个人整改方案
2014/10/31 职场文书
邀请书模板
2015/02/02 职场文书
施工员岗位职责
2015/02/10 职场文书
实习生个人总结范文
2015/02/28 职场文书
红白喜事主持词
2015/07/06 职场文书
2016党员读书思廉心得体会
2016/01/23 职场文书
python实现局部图像放大
2021/11/17 Python
《仙剑客栈2》第一弹正式宣传片公开 年内发售
2022/04/07 其他游戏