php 无超时,PHP进行批量任务处理不超时的解决方法

本文实例分析了PHP进行批量任务处理不超时的解决方法。分享给大家供大家参考,具体如下:

PHP批量任务处理

PHP在批量处理任务的时候会超时,其实解决方法很简单了,就是把任务分割,一次处理一部分,任务进度可以放在服务端也可以放在客户端,不是很复杂的话放在客户端,用js来处理就可以了.

客户端js回调处理

客户端处理的时候需要住一个地方,就是使用ajax处理的时候,ajax是异步的,使用for循环来处理的时候只是批量请求,这样任务量大的时候会直接DDOS服务器,所以需要等待回调函数返回,然后进行下一次的请求.

客户端例子

文件: index.htmlhtml>

$(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();

});

});

all
1
2
3
4
5
6
7
8
9

PHP处理批量任务的例子 服务端例子

文件: do.php<?php

sleep(3);

if ($_POST["id"] == 5) {

http_response_code(500);

exit();

}

echo json_encode($_POST);

更多关于PHP进行批量任务处理不超时的解决方法请关注PHP中文网(www.php.cn)其它文章!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值