curlmulti-PHP

关于

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

需求

PHP 5.1.0 +

特性

  1. 极低的CPU和内存使用率。

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

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

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

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

  6. 支持通过回调添加任务。

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

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

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

  10. 支持内部全自动重试。

  11. 支持用户参数任意传递。

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

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

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

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

运行机制

没有pthreads扩展支持,php是单线程顺序执行的,所以本类库大量使用回调函数。类库只有两个常用的方法,add()和start(),add()添加一个任务到内部任务池,start()开始以$maxTrhead设置的并发数进行回调循环,此方法是阻塞的直到所有任务完成。如果有大量的任务需要处理,使用$cbTask指定添加任务的回调函数,当并发不足并且任务池为空时此回调函数被调用。当一个任务完成之后add()中执行的处理回调立刻被执行,然后curl从任务池取一个任务添加到并发请求中。所有任务完成后start()函数结束。

地址:https://github.com/ares333/curlmulti


你可能感兴趣的:(curlmulti-PHP)