swoole 是 master 进程负责接受请求及监控(下边有多个多线程),然后 manager 进程下有多个 worker 进程和 task 进程。
文档给的办法是用 usr1 master pid,然后会重启所有的 worker 和 task 进程,然后回调 worker 的 workerstart 闭包,相关逻辑就是在这个闭包处理。但是,我的相关逻辑代码是写在 onmessage 中,然后用文档给的办法无效
$server->on('WorkerStart', function (){
//官方给的说明,在这里 require_once 业务文件
cli_set_process_title("swoole_worker");
});
$server->on('start', function () {
cli_set_process_title("swoole_master");
});
$server->on('open', function (\Swoole\WebSocket\Server $server, $request) {
// $server->push($request->fd,json_encode([
// 'code'=>200,
// 'type'=>'bind',
// 'msg'=>'success'
// ]) );
});
$server->on('message', function (\Swoole\WebSocket\Server $server, $frame) {
//我的相关业务逻辑在这里
$db=self::$db;
$redis=self::$redis;
$data=json_decode($frame->data,true);
$type=$data['type'];
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.