PHP批量任务处理超时怎么办
导读:这篇文章给大家分享的是“PHP批量任务处理超时怎么办”,文中的讲解内容简单清晰,对大家认识和了解都有一定的帮助,对此感兴趣的朋友,接下来就跟随小编一起了解一下“PHP批量任务处理超时怎么办”吧。 本文实例分析了PHP进行...
这篇文章给大家分享的是“PHP批量任务处理超时怎么办”,文中的讲解内容简单清晰,对大家认识和了解都有一定的帮助,对此感兴趣的朋友,接下来就跟随小编一起了解一下“PHP批量任务处理超时怎么办”吧。
本文实例分析了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字符串(string)用法总结》、《PHP数组(Array)操作技巧大全》、《PHP运算与运算符用法总结》、《PHP网络编程技巧总结》、《PHP基本语法入门教程》、《php操作office文档技巧总结(包括word,excel,access,ppt)》、《php日期与时间用法总结》、《php面向对象程序设计入门教程》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》
希望本文所述对大家PHP程序设计有所帮助。
以上就是关于“PHP批量任务处理超时怎么办”的相关知识,感谢各位的阅读,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注网络,小编每天都会为大家更新不同的知识。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: PHP批量任务处理超时怎么办
本文地址: https://pptw.com/jishu/652628.html
