Caution: The documentation you are viewing is
for an older version of Zend Framework.
You can find the documentation of the current version at:
https://docs.zendframework.com/
ZendX_Console_Process_Unix - ZendX_Console_Process_Unix
ZendX_Console_Process_Unix allows developers to spawn
an object as a new process, and so do multiple tasks in parallel on
console environments. Through its specific nature, it is only
working on *nix based systems like Linux, Solaris, Mac/OSx and such.
Additionally, the shmop_*
, pcntl_*
and
posix_*
modules are required for this component to
run. If one of the requirements is not met, it will throw an
exception after instantiating the component.
ZendX_Console_Process_Unix is an abstract class, which requires the user to extend it. It has a single abstract method called _run() which has to be implemented to create a working process. It also comes with multiple methods for checking the alive status and share variables between the parent and the child process.
The _run() method and every method which is called by it is executed by the child process. Every other method which is called directly by the parent is executed by the parent process.
setVariable() and getVariable() can be used from both the parent- and the child process to share variables. To observe the alive status, the child process should call _setAlive() in a frequent interval, so that the parent process can check the last alive time via getLastAlive(). To get the PID of the child process, the parent can call getPid().
Example #1 Basic example for processing
This example illustrates a basic child process
In this example a process is forked twice and executed. As every process runs 10 seconds, the parent process will be finished after 10 seconds (and not 20).