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 相关文章推荐
php5编程中的异常处理详细方法介绍
Jul 29 PHP
PHP正确配置mysql(apache环境)
Aug 28 PHP
PHP setcookie指定domain参数后,在IE下设置cookie失效的解决方法
Sep 09 PHP
比file_get_contents稳定的curl_get_contents分享
Jan 11 PHP
php 多关键字 高亮显示实现代码
Apr 23 PHP
改写ThinkPHP的U方法使其路由下分页正常
Jul 02 PHP
PHP文件锁定写入实例解析
Jul 14 PHP
PHP间隔一段时间执行代码的方法
Dec 02 PHP
php 批量查询搜狗sogou代码分享
May 17 PHP
PHP判断函数是否被定义的方法
Jun 21 PHP
PHP中非常有用却鲜有人知的函数集锦
Aug 17 PHP
thinkphp 5框架实现登陆,登出及session登陆状态检测功能示例
Oct 10 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/03/08 日漫
资料注册后发信小技巧
2006/10/09 PHP
PHP实现抓取HTTPS内容
2014/12/01 PHP
php实现的数字验证码及数字运算验证码
2015/07/30 PHP
php去除二维数组的重复项方法
2015/11/03 PHP
PHP实现验证码校验功能
2017/11/16 PHP
ThinkPHP框架实现导出excel数据的方法示例【基于PHPExcel】
2018/05/12 PHP
PHP实现限制域名访问的实现代码(本地验证)
2020/09/13 PHP
Mootools 1.2教程 选项卡效果(Tabs)
2009/09/15 Javascript
Javascript Jquery 遍历Json的实现代码
2010/03/31 Javascript
Javascript模块化编程(三)require.js的用法及功能介绍
2013/01/17 Javascript
js创建子窗口并且回传值示例代码
2013/07/02 Javascript
探讨jQuery的ajax使用场景(c#)
2013/12/03 Javascript
jQuery插件windowScroll实现单屏滚动特效
2015/07/14 Javascript
AngularJS入门教程之AngularJS表达式
2016/04/18 Javascript
JS检测页面中哪个HTML标签触发点击事件的方法
2016/06/17 Javascript
js中scrollTop()方法和scroll()方法用法示例
2016/10/03 Javascript
jQuery简单实现遍历单选框的方法
2017/03/06 Javascript
angularJs中datatable实现代码
2017/06/03 Javascript
vue.js实现单选框、复选框和下拉框示例
2017/07/18 Javascript
JavaScript解决浮点数计算不准确问题的方法分析
2018/07/09 Javascript
Vue中的异步组件函数实现代码
2018/07/20 Javascript
JavaScript中Array方法你该知道的正确打开方法
2018/09/11 Javascript
解决antd的Form组件setFieldsValue的警告问题
2020/10/29 Javascript
python计算牛顿迭代多项式实例分析
2015/05/07 Python
Python实现SVN的目录周期性备份实例
2015/07/17 Python
python中列表和元组的区别
2017/12/18 Python
python实现跨excel的工作表sheet之间的复制方法
2018/05/03 Python
Python何时应该使用Lambda函数
2019/07/02 Python
python银行系统实现源码
2019/10/25 Python
windows10环境下用anaconda和VScode配置的图文教程
2020/03/30 Python
深入浅析css3 中display box使用方法
2015/11/25 HTML / CSS
非洲NO.1网上商店:Jumia肯尼亚
2016/08/18 全球购物
向国旗敬礼活动总结
2014/09/27 职场文书
环卫工作个人总结
2015/03/04 职场文书
使用python将HTML转换为PDF pdfkit包(wkhtmltopdf) 的使用方法
2022/04/21 Python