Git --NB Framework 中文教程
目录 ▾ 快速起步

最后更新于:2018-10-26 13:29
53次阅读0条评论

服务启动与管理

在NB里,Swoole通过内置命令行指令server来管理,所以它具有命令行的基本使用方式。

编写命令行启动文件

同命令行章节里一样,我们定义一个名server入口文件,为了方便使用,我们直接绑定server指令。

#!/usr/bin/env php
<?php
//项目的根路径
define('_APP_',__DIR__.'/..');

//加载初始化文件
include ('/home/www/nb/boot.php');

\deploy\Config::register();
\nb\Console::run('server');

入口文件可以定义在任何位置,只用写对根路径和始化文件的路径和位置就可以了。
在事例Demo项目里,是写在根目录下的bin目录里

帮助命令

我们从控制台进入入口所在目录,执行./server命令,得到如下所示:

➜ ./server 
Usage:
  server [options] [--] [<act>]

Arguments:
  command                    The command to execute
  act                        [restart|start|stop|reload|status]

Options:
  -d, --daemonize=DAEMONIZE  Use daemonize run
  -h, --help                 Display this help message
  -v, --version              Display this console version
  -q, --quiet                Do not output any message
      --ansi                 Force ANSI output
      --no-ansi              Disable ANSI output
  -n, --no-interaction       Do not ask any interactive question

可以看到server指令的帮助信息。

环境配置

Swoole不光是内置指令server的实现,同时也是组件server的实现,继承了Component类,所以也具有组件该有的一切特性。
所以对它进行设置,就是在框架配置里添加server属性,如下:

public $server = [
        'driver'=>'http',
        'register'=>'common\\Server',//注册一个类,来实现swoole自定义事件
        'host'=>'0.0.0.0',
        'port'=>9501,
        'max_request'=>100,//worker进程的最大任务数
        'worker_num'=>2,//设置启动的worker进程数。
        'dispatch_mode'=>2,//据包分发策略,默认为2
        'debug_mode'=>3,
        'enable_gzip'=>0,//是否启用压缩,0为不启用,1-9为压缩等级
        'log_file'=>__APP__.'tmp'.DS.'swoole-http.log',
        'enable_pid'=>'/tmp/swoole.pid',
        'daemonize'=>false,
        //异步任务处理配置
        'task_worker_num'=>2,
];

配置包含swoole支持的所有配置,名称和作用都和swoole保持一致,同时也新增了NB需要用到的一些配置。
swoole的原生配置请到https://wiki.swoole.com 查看,下面主要说一下NB需要用到的配置属性:

名称作用
driver启动server的类型,值可以是http ,tcp,websocket
register设置swoole的回调函数,值为一个实现了回调函数的类名称

具体使用,会在后续章节讲解。

运行管理

根据上面的帮助信息,可以知道有以下管理方式:

// 启动服务,根据 .env 配置决定是否是守护进程
./server start

// 重启
./server restart

// 重新加载
./server reload

// 关闭服务
./server stop
上一篇:响应输出
下一篇:重定向

相关评论

您需要登录后才可以发表评论