jenner / react-multi-process
react多进程支持
0.1
2015-11-19 02:26 UTC
Requires
- php: >=5.4.0
- jenner/simple_fork: ~1.1
- react/event-loop: v0.4.1
Requires (Dev)
- react/socket-client: v0.4.4
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();