我们经常遇到一些项目需要对大量的数据进行统计或者筛选。 而且并不能一步完成,还需要按各项条件进行二轮三轮处理。这样我们的问题就来了, PHP后台处理程序是有时间限制的, 使用set time limit 0,设置为超时无限也会因为看不到进度让管理员对程序进度无法了解。 这都是不科学的
PHP批量任务处理
PHP在批量处理任务的时候会超时,其实解决方法很简单了,就是把任务分割,一次处理一部分,任务进度可以放在服务端也可以放在客户端,不是很复杂的话放在客户端,用js来处理就可以了.
客户端js回调处理
客户端处理的时候需要住一个地方,就是使用ajax处理的时候,ajax是异步的,使用for循环来处理的时候只是批量请求,这样任务量大的时候会直接DDOS服务器,所以需要等待回调函数返回,然后进行下一次的请求.