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 相关文章推荐
在Windows中安装Apache2和PHP4的权威指南
Oct 09 PHP
让你的WINDOWS同时支持MYSQL4,MYSQL4.1,MYSQL5X
Dec 06 PHP
dedecms中常见问题修改方法总结
Mar 21 PHP
Gregarius中文日期格式问题解决办法
Apr 22 PHP
Php中使用Select 查询语句的实例
Feb 19 PHP
php_screw安装使用教程(另一个PHP代码加密实现)
May 29 PHP
PHP实现的购物车类实例
Jun 17 PHP
PHP中substr函数字符串截取用法分析
Jan 07 PHP
PHP控制前台弹出对话框的实现方法
Aug 21 PHP
php 判断字符串编码是utf-8 或gb2312实例
Nov 01 PHP
PHP排序算法之直接插入排序(Straight Insertion Sort)实例分析
Apr 20 PHP
php的instanceof和判断闭包Closure操作示例
Jan 26 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
人尽可用的Windows技巧小贴士之下篇
2007/03/22 PHP
php实现12306火车票余票查询和价格查询(12306火车票查询)
2014/01/14 PHP
php提交表单发送邮件的方法
2015/03/20 PHP
php简单统计在线人数的方法
2016/05/10 PHP
PHP实现简单登录界面
2019/10/23 PHP
javascript 24小时弹出一次的代码(利用cookies)
2009/09/03 Javascript
A标签中通过href和onclick传递的this对象实现思路
2013/04/19 Javascript
在百度知道团队中快速审批新成员的js脚本
2014/02/02 Javascript
jQuery选择器源码解读(八):addCombinator函数
2015/03/31 Javascript
基于jQuery实现的无刷新表格分页实例
2016/02/17 Javascript
AngularJS directive返回对象属性详解
2016/03/28 Javascript
深入理解Ajax的get和post请求
2016/06/02 Javascript
Node.js的Web模板引擎ejs的入门使用教程
2016/06/06 Javascript
JS与jQuery实现隔行变色的方法
2016/09/09 Javascript
JavaScript获取短信验证码(周期性)
2016/12/29 Javascript
js 获取html5的data属性实现方法
2017/07/28 Javascript
五步轻松实现JavaScript HTML时钟效果
2020/03/25 Javascript
利用vue和element-ui设置表格内容分页的实例
2018/03/02 Javascript
vue与vue-i18n结合实现后台数据的多语言切换方法
2018/03/08 Javascript
node.js博客项目开发手记
2018/03/16 Javascript
vue实现a标签点击高亮方法
2018/03/17 Javascript
JS实现倒序输出的几种常用方法示例
2019/04/13 Javascript
Javascript实现关闭广告效果
2021/01/29 Javascript
Python类的用法实例浅析
2015/05/27 Python
浅析Python中MySQLdb的事务处理功能
2016/09/21 Python
python按键按住不放持续响应的实例代码
2019/07/17 Python
MoviePy常用剪辑类及Python视频剪辑自动化
2020/12/18 Python
思想政治教育专业个人求职信范文
2013/12/20 职场文书
三年大学生活自我鉴定
2014/01/21 职场文书
新人入职感言
2015/07/31 职场文书
解决numpy数组互换两行及赋值的问题
2021/04/17 Python
Nginx配置Https安全认证的实现
2021/05/26 Servers
解决Python中的modf()函数取小数部分不准确问题
2021/05/28 Python
聊聊Lombok中的@Builder注解使用教程
2021/11/17 Java/Android
Vue的列表之渲染,排序,过滤详解
2022/02/24 Vue.js
Win11 vmware不兼容怎么办?Win11与VMware虚拟机不兼容的解决方法
2023/01/09 数码科技