Home >PHP Framework >Swoole >How to create a worker in swoole
swoole is a multi-process model framework. When a process swoole application is started, a total of 2 n m processes will be created, n is the number of worker processes, m is the number of TaskWorker processes, 1 The relationship between a master process and a manager process is as shown in the figure below
The Master process is the main process. This process will create work processes/threads such as Manager processes and Reactor threads.
The Worker process serves as the working process of Swoole, and all business logic codes run on this process. When the Reactor thread receives the data from the client, it packages the data and sends it to a Worker process through a pipe.
The worker/task processes in swoole are all forked and managed by the Manager process.
When the child process ends, the manager process is responsible for recycling the child process to avoid becoming a zombie process. And create a new sub-process
When the server is shut down, the manager process will send signals to all sub-processes to notify the sub-processes to shut down the service
When the server is reloaded, the manager process will shut down/restart the sub-processes one by one
fork():
A process, including code, data and resources allocated to the process. The fork() function creates a process that is almost identical to the original process through a system call, that is, the two processes can do exactly the same thing, but if the initial parameters or passed-in variables are different, the two processes can also do different things. .
After a process calls the fork() function, the system first allocates resources to the new process, such as space for storing data and code. Then copy all the values of the original process to the new process, except for a few values that are different from the values of the original process. It is equivalent to cloning oneself.
Recommended learning: swoole tutorial
The above is the detailed content of How to create a worker in swoole. For more information, please follow other related articles on the PHP Chinese website!