PHP实现非阻塞批量推送数据的方法

PHP是一种通用开源脚本语言。语法吸收了C语言、Java和Perl的特点,利于学习,使用广泛,主要适用于Web开发领域。PHP 独特的语法混合了C、Java、Perl以及PHP自创的语法。它可以比CGI或者Perl更快速地执行动态网页。

成都创新互联公司是一家专注于成都做网站、成都网站制作与策划设计,郧西网站建设哪家好?成都创新互联公司做网站,专注于网站建设十余年,网设计领域的专业建站公司;建站业务涵盖:郧西等地区。郧西做网站价格咨询:028-86922220

今天看到论坛里面有人问PHP实现非阻塞批量推送数据的方法,这里大概总结下。

1、最简单的办法:

一个脚本同时跑多次,用参数来跑指定范围。假如要推送10000用户,可以每100个用户运行一个脚本(脚本逻辑就是循环遍历100个用户,串行的发送数据,代码略),并且多个(100)脚本同时运行。

类似:

php task.php 1 100 &
php task.php 101 200 &
php task.php 201 300 &
........

当然这个方法不是非阻塞的,但是可以批量操作,大大加快处理速度。

2、麻烦点的:如果想要非阻塞并且是HTTP协议的话

可以用下面的代码

3、非阻塞,并且不是HTTP协议的话,需要使用php的socket + stream_select

0)
{
    $read = $sockets;
    $write = $e = array();
    // 等待数据可读
    if(stream_select($read, $write, $e, 10))
    {
        // 循环读数据
        foreach($read as $socket)
        {
           // 这里是服务端返回的数据,需要的话可以循环读
           echo fread($socket, 8192);
           // 数据读取完毕关闭链接,并删除链接
           fclose($socket);
           unset($sockets[(int)$socket]);
        }
    }
}

以上就是PHP实现非阻塞批量推送数据的方法的详细内容,更多请关注创新互联其它相关文章!


本文名称:PHP实现非阻塞批量推送数据的方法
标题路径:http://pwwzsj.com/article/ipghgj.html