ProcessesExecutorInterface
last analyzed

Size/Duplication

Total Lines 28
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
dl 0
loc 28
c 0
b 0
f 0

1 Method

Rating   Name   Duplication   Size   Complexity  
execute() 0 8 ?
1
<?php
2
3
namespace Saxulum\ProcessesExecutor;
4
5
use Symfony\Component\Process\Process;
6
7
interface ProcessesExecutorInterface
8
{
9
    const LOG_START = 'start the execution of child processes';
10
    const LOG_START_START_CALLBACK = 'start start callback on child process: {process}';
11
    const LOG_STOP_START_CALLBACK = 'stop start callback on child process: {process}';
12
    const LOG_START_ITERATION_CALLBACK = 'start iteration callback on child processes: {processes}';
13
    const LOG_STOP_ITERATION_CALLBACK = 'stop iteration callback on child processes: {processes}';
14
    const LOG_START_FINISH_CALLBACK = 'start finish callback on child process: {process}';
15
    const LOG_STOP_FINISH_CALLBACK = 'stop finish callback on child process: {process}';
16
    const LOG_FINISHED = 'finished the execution of child processes';
17
18
    /**
19
     * @param Process[]|array $processes
20
     * @param callable|null   $startCallback
21
     * @param callable|null   $iterationCallback
22
     * @param callable|null   $finishCallback
23
     * @param int             $parallelProcessCount
24
     * @param int             $iterationSleepInMicroseconds
25
     */
26
    public function execute(
27
        array $processes,
28
        callable $startCallback = null,
29
        callable $iterationCallback = null,
30
        callable $finishCallback = null,
31
        int $parallelProcessCount = 8,
32
        int $iterationSleepInMicroseconds = 0
33
    );
34
}
35