ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
# swoole_server->addProcess 添加一个用户自定义的工作进程。此函数通常用于创建一个特殊的工作进程,用于监控、上报或者其他特殊的任务。 ```php 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`接口 示例程序 ----- ```php $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(); ```