Swoole Server属性

Swoole中swoole_server的属性可通过set(array $configs)方法进行配置

//构建服务器对象
$host = "0.0.0.0";
$port = 9000;
$server = new swoole_server($host, $port);
//设置服务器对象运行时参数
$configs = [];
$configs["worker_num"] = 8;
$configs["max_request"] = 10000;
$configs["max_conn"] = 10000;
$configs["dispatch_mode"] = 8;
$configs["debug_mode"] = 1;
$configs["daemonize"] = false;
$server->set($configs);

setting

服务器运行时参数列表

$setting = $server->setting;

master_pid

  • 当前服务器Master主进程的PID,通过向Master主进程发送SIGTERM信号可安全关闭服务器。
  • master_pid只能在onStartonWorkerStart回调函数会之后获取到
$server->on("Start", function(swoole_server $server){
  $master_pid = $server->master_pid;
  $manager_pid = $server->manager_pid;
  echo "[start] master {$master_id} manager {$manager_pid}".PHP_EOL;
});

manager_pid

  • 当前服务器Manager管理进程的PID,通过向管理进程发送SIGUSR1信号可实现柔性重启。
  • manager_pid只能在onStartonWorkerStart回调函数会之后获取到
$server->on("Start", function(swoole_server $server){
  $master_pid = $server->master_pid;
  $manager_pid = $server->manager_pid;
  echo "[start] master {$master_id} manager {$manager_pid}".PHP_EOL;
});

worker_id

int $server->worker_id;
  • 当前服务器Worker进程的编号,包括Task进程。
  • Worker进程编号的取值范围是从0到$server->setting["worker_num"] - 1
  • Task进程编号的取值范围是从$server->setting["worker_num"]$server->setting["worker_num"] + $server["task_worker_num"]
  • 当Worker工作进程重启后worker_id的值是不变的
$worker_id = $server->worker_id;

worker_pid

int Server::$worker_pid
  • 当前服务器Worker进程的PID
$worker_pid = $server->worker_pid;
  • 也可通过posix_getpid()函数调用返回

taskworker

bool Server::$taskworker
  • 工作进程类型:true表示Task进程,false表示Worker进程。
$taskworker = $server->taskworker;

connections

  • 适用于Swoole1.7.16+版本
  • TCP连接迭代器
  • 包含当前所有连接,是一个迭代器对象,迭代器对象只能使用foreach遍历,不能直接var_dump或数组下标访问。遍历的元素是单个连接的文件描述符fd
$connections = $server->connections;
if(count($connections) > 0){
    foreach($connections as $fd){
        $server->send($fd, "hello");
    }  
}

ports

监听的所有端口

$ports = $server->ports;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值