php多线程抓取网页(+异步的采集程序-上海怡健医学)

优采云 发布时间: 2022-01-28 08:01

  php多线程抓取网页(+异步的采集程序-上海怡健医学)

  1.windows下安装很成问题,版本库不完全对应,比如我是win7 64位系统,php 5.4 结果没有对应的包,所以我只能打开一个虚拟机,安装的是win7x32+PHP5.3。

  2.注意:线程的实现代码写在run方法中,但是启动线程的方法是start,不要直接调用run,(这样变成单线程了)

  3.如果可能的话,先实例化所有线程,然后再循环,一个一个开始

  4.线程中,SPL相关函数失败,最重要的是spl_register_autoload,导致自动加载失败。我的解决方案是在线程未启动时首先加载所有必需的类。

  5.pthreads有版本问题,手册中大部分类和方法都需要2.0.0以上,我们运维原来安装的0.4.@ >4

  6.我写了一个多线程+异步的采集程序。网站 中的 5 个 采集 花了一周的时间。

  让我给你一个惊人的结论:

  --------暂时不要用这个东西,生产环境有很多问题

  1. 频繁的内存泄漏

  2.遇到一个奇怪的问题:在线程中创建一个对象,在构造的时候给对象的属性赋值,然后回去取回,值就没了~~~,这个问题不不可避免(与时间无关,与代码有关),我特地写了一个测试示例,没有错误。

  3.一开始我用纯多线程写采集(不使用async),效率不高。然后我改变了组合方法。

  4.下周的工作,我要摆脱线程部分,它太不稳定了。采集只使用异步。

  吐槽:有些程序员分不清异步和并发。

  补充:

  经过调试,上述问题2已经解决,是由于框架中另一个位置的隐藏bug造成的。

  它在虚拟机上运行良好,但尚未在服务器上运行。

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线