christiaan/stream-process

proc_open的包装器,简化进程间通过流通信

1.0.2 2018-07-07 11:21 UTC

This package is auto-updated.

Last update: 2024-09-06 15:19:10 UTC


README

Build Status

轻松生成进程并与它们使用流进行通信。主要构建用于与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上可能无法工作

可能可以通过使用文件而不是直接流来修复。