We know that there are two major processes in swoole, namely the master process and the manager management process. (Recommended learning: swoole video tutorial)
There will be a main reactor thread and multiple reactor threads in the master main process. The main function is to maintain TCP connections and handle network IO , send and receive data.
The manager manages processes and its role is to fork and manage worker and task processes.
The function of the worker process is to receive the data passed by the reactor thread, process the data, and return the processing results to the reactor thread.
The role of the task process is to handle some relatively time-consuming tasks. The task process is independent of the worker process and will not affect the worker process' processing of client requests.
1. Application scenarios of task process:
1. Relatively time-consuming mass mailing, such as a certain event, which requires sending event emails to 1 million users.
2. Push the updates of certain big Vs. For example, if a big V posts a new message, fans need to get the updates in time.
2. The relationship between worker and task:
1. The worker process can deliver tasks by calling task(), and the task process responds through the onTask event. Submitted tasks.
2. In the task process, you can tell the worker process that the task is completed by returning directly or calling finish(). In the worker process, you can respond to the task completion through the onFinish event.
3. Prerequisites for using task:
1. Configure the number of task_worker_num in Server.
2. Set the Server's onTask and onFinish event callback functions.
The above is the detailed content of Is swoole's task a thread or a process?. For more information, please follow other related articles on the PHP Chinese website!