Matthias Krauser mail: matthias@krauser.eu twitter: @mat_krauser
- initial release
The foreach-parallel-task for phing behaves exactly like the normal foreach-task. From the documentation of the foreach-task:
The foreach task iterates over a list, a list of filesets, or both. If both, list and filesets, are specified, the list will be evaluated first. Nested filesets are evaluated in the order they appear in the task.
The only difference is, that the iterations are not executed sequentially but parallel. It like a foreach-version of phing's ParallelTask.
This only works on *nix machines with pcntl-extension installed. If the requirements are not fullfilled, the foreach-parallel-task will behave like a regular foreach-task.
The suggested installation method is via composer:
php composer.phar require "doctrine/instantiator:~1.0.3"
- Load the task in your phing build-file
<taskdef name="foreach_parallel" classname="MaK\Phing\Task\ForeachParallelTask" />
- Call the task:
The syntax is exactly the same as the original task. The only difference is the optional
threadCount
-Attribute, to specify the maximum number of threads / processes to use. If not specified, the library will try to guess the best number.
<foreach_parallel list="..." param="some_param" target="target-task" threadCount="4"/>
This library task was heavily inspired by ParallelTask from Michiel Rook (mrook@php.net), which is part of the Phing-Core.