christiaan / stream-process
proc_open的包装器,简化进程间通过流通信
1.0.2
2018-07-07 11:21 UTC
Requires
- php: >= 5.3.2
Requires (Dev)
- mkraemer/react-pcntl: dev-master
- phpunit/phpunit: ^7.2
- react/event-loop: *
Suggests
- react/event-loop: Allows easier working with streams and waiting till data is available
This package is auto-updated.
Last update: 2024-09-06 15:19:10 UTC
README
轻松生成进程并与它们使用流进行通信。主要构建用于与react/event-loop一起使用。
安装
composer.phar require christiaan/stream-process
用法
$loop = \React\EventLoop\Factory::create(); $child = new StreamProcess('php someWorkerProcess.php'); $loop->addReadStream($child->getReadStream(), function($stream) { $data = fgets($stream); fwrite(STDOUT, $data); }); $loop->addPeriodicTimer(1, function() { pcntl_signal_dispatch(); }); pcntl_signal(SIGTERM, function() use($loop) { $loop->stop(); // Cleanup before closing exit(0); }); fwrite($child->getWriteStream(), 'start'); $loop->run();
已知问题
由于这个bug,在Windows上可能无法工作
可能可以通过使用文件而不是直接流来修复。