symfony-bundles / fork
SymfonyBundles Fork Library
v3.5.0
2018-02-26 20:27 UTC
Requires
- php: ^7.1.3
Requires (Dev)
- phpunit/php-code-coverage: ^5.0
- phpunit/phpunit: ^6.4
README
Installation
Install the library with composer:
composer require symfony-bundles/fork
How to use (only cli-mode)
Create the fork service:
use SymfonyBundles\Fork; $fork = new Fork\Fork();
Create a task that implements an interface SymfonyBundles\Fork\TaskInterface
.
For example:
namespace AppBundle\Task; use SymfonyBundles\Fork\TaskInterface; class DemoTask implements TaskInterface { public function execute() { echo "Hello World!\n"; } }
Now that the task is created, you can execute her in a plurality processes:
use AppBundle\Task\DemoTask; $task = new DemoTask(); $fork->attach($task)->run(4)->wait(); // 4 - this is number of subprocesses
And another example:
$task1 = new DemoTask(); $task2 = new DemoTask(); $task3 = new DemoTask(); $fork->attach($task1)->attach($task2)->attach($task3); $fork->run(); // by default, the optimal number of subprocesses will be determined $fork->wait();
If you call method wait
, the current process (main) will wait while all child processes will be finished.