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程序员编程注意事项
Apr 10 PHP
php Notice: Undefined index 错误提示解决方法
Aug 29 PHP
修改PHP的memory_limit限制的方法分享
Feb 21 PHP
ThinkPHP中自定义目录结构的设置方法
Aug 15 PHP
php与Mysql的一些简单的操作
Feb 26 PHP
PHP实现简单汉字验证码
Jul 28 PHP
yii去掉必填项中星号的方法
Dec 28 PHP
php添加数据到xml文件的简单例子
Sep 08 PHP
php输出含有“#”字符串的方法
Jan 18 PHP
php中序列化与反序列化详解
Feb 13 PHP
PHP实现的支付宝支付功能示例
Mar 26 PHP
PHP实现页面静态化深入讲解
Mar 04 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
php数组应用之比较两个时间的相减排序
2008/08/18 PHP
php 删除cookie和浏览器重定向
2009/03/16 PHP
微信营销平台系统?刮刮乐的开发
2014/06/10 PHP
PHP中文乱码解决方案
2015/03/05 PHP
php获取文件类型和文件信息的方法
2015/07/10 PHP
总结PHP代码规范、流程规范、git规范
2018/06/18 PHP
PHP实现一个限制实例化次数的类示例
2019/09/16 PHP
jQuery $.get 的妙用 访问本地文本文件
2012/07/12 Javascript
Jquery实现控件的隐藏和显示实例
2014/02/08 Javascript
jQuery .tmpl() 用法示例介绍
2014/08/21 Javascript
javascript对象的相关操作小结
2016/05/16 Javascript
javascript事件处理模型实例说明
2016/05/31 Javascript
使用JavaScript根据图片获取条形码的方法
2017/07/04 Javascript
详解Webpack DLL用法以及功能
2017/07/11 Javascript
微信小程序数字滚动插件使用详解
2018/02/02 Javascript
通过vue提供的keep-alive减少对服务器的请求次数
2018/04/01 Javascript
Nuxt.js SSR与权限验证的实现
2018/11/21 Javascript
[02:04]2018DOTA2亚洲邀请赛Secret赛前采访
2018/04/03 DOTA
python类定义的讲解
2013/11/01 Python
Python中为feedparser设置超时时间避免堵塞
2014/09/28 Python
python实现植物大战僵尸游戏实例代码
2019/06/10 Python
python将print输出的信息保留到日志文件中
2019/09/27 Python
python 字典有序并写入json文件过程解析
2019/09/30 Python
Python守护进程实现过程详解
2020/02/10 Python
Python3 io文本及原始流I/O工具用法详解
2020/03/23 Python
通信工程专业个人找工作求职信范文
2013/09/21 职场文书
企划专员岗位职责
2013/12/09 职场文书
饭店工作计划书
2014/01/10 职场文书
大班上学期幼儿评语
2014/04/30 职场文书
开学典礼演讲稿
2014/05/23 职场文书
学校联谊协议书
2014/09/16 职场文书
学校政风行风整改方案
2014/10/25 职场文书
综合素质评价自我评价
2015/03/06 职场文书
电信营业员岗位职责
2015/04/14 职场文书
Go语言 go程释放操作(退出/销毁)
2021/04/30 Golang
linux中nohup和后台运行进程查看及终止
2021/06/24 Python