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函数
Dec 06 PHP
php GD绘制24小时柱状图
Jun 28 PHP
php面象对象数据库操作类实例
Dec 02 PHP
apache中为php 设置虚拟目录
Dec 17 PHP
PHP中使用substr()截取字符串出现中文乱码问题该怎么办
Oct 21 PHP
Yii清理缓存的方法
Jan 06 PHP
php实现留言板功能(代码详解)
Mar 28 PHP
php生成毫秒时间戳的实例讲解
Sep 22 PHP
360搜索引擎自动收录php改写方案
Apr 28 PHP
PHP自定义递归函数实现数组转JSON功能【支持GBK编码】
Jul 17 PHP
Laravel重定向,a链接跳转,控制器跳转示例
Oct 22 PHP
php中用unset销毁变量并释放内存
May 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
PHP 正则表达式小结
2015/02/12 PHP
Yii框架表单模型和验证用法
2016/05/20 PHP
PHP工厂模式、单例模式与注册树模式实例详解
2019/06/03 PHP
php 多进程编程父进程的阻塞与非阻塞实例分析
2020/02/22 PHP
JQuery小知识
2010/10/15 Javascript
jQuery 获取URL的GET参数值的小例子
2013/04/18 Javascript
JQuery制作的放大效果的popup对话框(未添加任何jquery plugin)分享
2013/04/28 Javascript
如何学习Javascript入门指导
2013/11/01 Javascript
JavaScript中的object转换成number或string规则介绍
2014/12/31 Javascript
使用JS轻松实现ionic调用键盘搜索功能(超实用)
2016/09/06 Javascript
在bootstrap中实现轮播图实例代码
2017/06/11 Javascript
webpack打包js文件及部署的实现方法
2017/12/18 Javascript
react配置antd按需加载的使用
2019/02/11 Javascript
浅谈webpack和webpack-cli模块源码分析
2020/01/19 Javascript
原生js实现点击按钮复制内容到剪切板
2020/11/19 Javascript
微信跳一跳辅助python代码实现
2018/01/05 Python
selenium+python自动化测试之多窗口切换
2019/01/23 Python
Python3网络爬虫中的requests高级用法详解
2019/06/18 Python
Python识别html主要文本框过程解析
2020/02/18 Python
Python列表切片常用操作实例解析
2020/03/10 Python
django使用JWT保存用户登录信息
2020/04/22 Python
如何利用python生成MD5并去重
2020/12/07 Python
python实现图片转字符画
2021/02/19 Python
CSS3 绘制BMW logo实的现代码
2013/04/25 HTML / CSS
Notino希腊:购买香水和美容产品
2019/07/25 全球购物
世界排名第一的运动鞋市场:Flight Club
2020/01/03 全球购物
俄罗斯在线服装店:STOLNIK
2021/03/07 全球购物
教师个人鉴定材料
2014/02/08 职场文书
《囚绿记》教学反思
2014/03/01 职场文书
学校百日安全生产活动总结
2014/07/05 职场文书
小学绿色学校申报材料
2014/08/23 职场文书
大连导游词
2015/02/12 职场文书
整脏治乱工作简报
2015/07/21 职场文书
告诉你一个秘密:富人致富的五大优点
2019/07/11 职场文书
SQL模糊查询报:ORA-00909:参数个数无效问题的解决
2021/06/21 Oracle
java版 简单三子棋游戏
2022/05/04 Java/Android