Skip to content

christiaan/stream-process

Repository files navigation

StreamProcess

Build Status

Easily spawn processes and communicate with them using streams. Mainly build to be used together with react/event-loop.

Installation

composer.phar require christiaan/stream-process

Usage

$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();

Known issues

Not working on Windows because of this bug

Could possible be fixed by using files instead of direct streams.

About

Easily spawn processes and communicate with them using streams.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages