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
相关文章推荐
- php 检测字符集
- TP调试遇到的问题
- PHP页面转UTF-8中文编码乱码的解决办法
- uboot烧写yaffs文件系统的原理
- Thinkphp 无限级菜单问题
- thinkphp调用phpqrcode.php生成二维码
- PHP 正则规则
- php缓存技术
- yaffs2文件系统移植出错:usage: ./patch-ker.sh c/l m/s kerneipath
- php设计模式-单例模式-工厂模式
- php 银行卡号 手机号码 正则表达式格式化 每4位隔空格显示
- php限制文件下载速度的代码
- php BOM 问题
- 树莓派上php通过sudo执行root权限的程序
- PHP数组间隔取数的实现
- php获取远程文件大小
- php中数据库连接
- php根据日期或时间戳获取星座信息和生肖等信息
- php 生成文件txt到指定目录
- (5) php校验时间的合法性 && work attitude 20151020 ):