偶尔想了一下这么个问题:前台页面用ajax向php程序发送各种网址,后台用curl对相应的网址进行采集,若是流量大的话需要对php程序进行多进程,并且多进程是按需的,也就是说来一个网址,不等待上一个网址有没有采集完,都开启一个新进程进行采集,采集完成后关闭该进程,大家来讨论一下该怎么实现,有点子没?我是思考很长时间,笨拙的没有办法。PS:在linux环境下。

解决方案 »

  1.   

    多进程数据采集
    http://blog.zol.com.cn/2366/article_2365152.html
      

  2.   

    这个使用fsocketopen函数即可实现
      

  3.   

    只要你不要求立即返回结果,那么很容易实现
    当然你都要求是多进程了,自然也就不可能立即返回结果了实行采集的程序是独立的,只要他能实现通过 url 传递一个网址,他就将采集到的数据保存于预定的载体中就可以了。不是本帖的讨论范围ajax 请求值传递到 采集接口 程序
    支持多个目标并发访问
    该接口通过 curl_multi_xxx 访问 采集程序,发出请求后就结束,不等待返回
    如果不支持 curl 也可以使用 fsockopen 打开 采集程序。
    fsockopen 是内置函数,不存在不支持的问题。只是变成稍稍麻烦点你需要考虑的是:你的服务器能够承受多少个向外的并发连接
      

  4.   

    哈哈,支持curl,如果用curl_multi_xxx的话耗费内存大不大哦,另外大多数服务器能承受多少的并发连接呢