MediaWiki REL1_37
|
Class for managing forking command line scripts. More...
Public Member Functions | |
__construct ( $numProcs, $flags=0) | |
getChildNumber () | |
Get the number of the child currently running. | |
start () | |
Start the child processes. | |
Protected Member Functions | |
forkWorkers ( $numProcs) | |
Fork a number of worker processes. | |
handleTermSignal ( $signal) | |
initChild () | |
prepareEnvironment () | |
Protected Attributes | |
int | $childNumber = 0 |
array null | $children = [] |
int | $flags = 0 |
int | $procsToStart = 0 |
bool | $termReceived = false |
Static Protected Attributes | |
static | $RESTARTABLE_SIGNALS = [] |
Private Attributes | |
const | RESTART_ON_ERROR = 1 |
Pass this flag to __construct() to cause the class to automatically restart workers that exit with non-zero exit status or a signal such as SIGSEGV. | |
Class for managing forking command line scripts.
Currently just does forking and process control, but it could easily be extended to provide IPC and job dispatch.
This class requires the posix and pcntl extensions.
Definition at line 33 of file ForkController.php.
ForkController::__construct | ( | $numProcs, | |
$flags = 0 |
|||
) |
int | $numProcs | The number of worker processes to fork |
int | $flags |
Definition at line 61 of file ForkController.php.
|
protected |
Fork a number of worker processes.
int | $numProcs |
Reimplemented in OrderedStreamingForkController.
Definition at line 181 of file ForkController.php.
References initChild(), and prepareEnvironment().
Referenced by start().
ForkController::getChildNumber | ( | ) |
Get the number of the child currently running.
Note, this is not the pid, but rather which of the total number of children we are
Definition at line 163 of file ForkController.php.
References $childNumber.
|
protected |
Definition at line 211 of file ForkController.php.
|
protected |
Definition at line 206 of file ForkController.php.
Referenced by forkWorkers(), and OrderedStreamingForkController\forkWorkers().
|
protected |
Definition at line 167 of file ForkController.php.
References RedisConnectionPool\destroySingletons().
Referenced by forkWorkers(), and OrderedStreamingForkController\forkWorkers().
ForkController::start | ( | ) |
Start the child processes.
This should only be called from the command line. It should be called as early as possible during execution.
This will return 'child' in the child processes. In the parent process, it will run until all the child processes exit or a TERM signal is received. It will then return 'done'.
Reimplemented in OrderedStreamingForkController.
Definition at line 90 of file ForkController.php.
References forkWorkers().
|
protected |
Definition at line 38 of file ForkController.php.
Referenced by getChildNumber().
|
protected |
Definition at line 35 of file ForkController.php.
|
protected |
Definition at line 44 of file ForkController.php.
Referenced by __construct().
|
protected |
Definition at line 47 of file ForkController.php.
|
staticprotected |
Definition at line 49 of file ForkController.php.
|
protected |
Definition at line 41 of file ForkController.php.
|
private |
Pass this flag to __construct() to cause the class to automatically restart workers that exit with non-zero exit status or a signal such as SIGSEGV.
Definition at line 55 of file ForkController.php.