您的位置:首页 > 编程语言 > PHP开发

curlmulti-PHP

2015-10-20 16:30 676 查看

关于

这是目前最好的php curl类库,很多开发者基于此库开发项目。类库是对curl_multi_*系列函数的封装,性能、扩展性、易用性、性能都是最高水平,很强大。

需求

PHP 5.1.0 +

特性

极低的CPU和内存使用率。

速度在程序层面最高(测试抓取html速度达到2000+页每秒,下载速度1000Mbps。

内部原生下载支持(使用curl文件下载回调,性能最高)。

支持全局并发设置和根据任务类型单独设置并发。

支持状态回调,运行中的所有信息都被返回,包括单独的每个任务信息。

支持通过回调添加任务。

支持用户自定义回调,可以在回调中做任何事情。

支持任务完成回退,用于等待先决条件完成。

支持全局错误回调和单独任务的错误回调,所有和错误相关的信息都被返回。

支持内部全自动重试。

支持用户参数任意传递。

支持CURLOPT_*全局设置和单个任务设置。

强大的内置缓存,可以设置全局缓存和单独任务缓存。

所有配置可以在运行中动态改变并生效!

基于此库你可以开发各种厉害的CURL应用。

运行机制

没有pthreads扩展支持,php是单线程顺序执行的,所以本类库大量使用回调函数。类库只有两个常用的方法,add()和start(),add()添加一个任务到内部任务池,start()开始以$maxTrhead设置的并发数进行回调循环,此方法是阻塞的直到所有任务完成。如果有大量的任务需要处理,使用$cbTask指定添加任务的回调函数,当并发不足并且任务池为空时此回调函数被调用。当一个任务完成之后add()中执行的处理回调立刻被执行,然后curl从任务池取一个任务添加到并发请求中。所有任务完成后start()函数结束。
地址:https://github.com/ares333/curlmulti
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: