添加一个用户自定义的工作进程。此函数通常用于创建一个特殊的工作进程,用于监控、上报或者其他特殊的任务。
bool swoole_server->addProcess(swoole_process $process);
此函数在
swoole-1.7.9
以上版本可用
$process
为swoole_process
对象,注意不需要执行start
。在swoole_server
启动时会自动创建进程,并执行指定的子进程函数$server
对象提供的各个方法,如connection_list
/connection_info
/stats
worker/task
进程中可以调用$process
提供的方法与子进程进行通信$server->sendMessage
与worker/task
进程通信添加成功返回true
,失败返回false
Manager
进程,如果发生致命错误,Manager
进程会重新创建一个reload
指令控制,reload
时不会向用户进程发送任何信息shutdown
关闭服务器时,会向自定义进程发送SIGTERM
信号swoole_server->task/taskwait
接口$server = new swoole_server('127.0.0.1', 9501);
$process = new swoole_process(function($process) use ($server) {
while (true) {
$msg = $process->read();
foreach($server->connections as $conn) {
$server->send($conn, $msg);
}
}
});
$server->addProcess($process);
$server->on('receive', function ($serv, $fd, $from_id, $data) use ($process) {
//群发收到的消息
$process->write($data);
});
$server->start();