jenner/react-multi-process

react多进程支持

0.1 2015-11-19 02:26 UTC

This package is auto-updated.

Last update: 2024-09-14 12:02:16 UTC


README

为reactphp提供多进程支持

为什么使用react-multi-process

当我们使用react/event-loop来编写异步程序时,我们无法确定每个模块都是非阻塞模块(同步MySQL客户端...)。
因此,我们使用多进程来提高我们同步程序的性能。

导入

composer require jenner/react-multi-process

如何使用它?

非常简单,就像这样

$loop = React\EventLoop\Factory::create();
$server = stream_socket_server('tcp://127.0.0.1:4020');
stream_set_blocking($server, 0);
$loop->addReadStream($server, function ($server) use ($loop) {
    $conn = stream_socket_accept($server);
    $data = "pid:" . getmypid() . PHP_EOL;
    $loop->addWriteStream($conn, function ($conn) use (&$data, $loop) {
        $written = fwrite($conn, $data);
        if ($written === strlen($data)) {
            fclose($conn);
            $loop->removeStream($conn);
        } else {
            $data = substr($data, 0, $written);
        }
    });
});

// the second param is the sub process count
$master = new \React\Multi\Master($loop, 20);
$master->start();