视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
swoole进程关闭后怎么重启
2020-11-03 18:22:54 责编:小采
文档


swoole进程关闭后可以使用Server->reload方法重启。

Server->reload方法介绍:

重启所有Worker/Task进程。

bool Server->reload(bool $only_reload_taskworkrer = false)

$only_reload_taskworkrer 是否仅重启Task进程

一台繁忙的后端服务器随时都在处理请求,如果管理员通过kill进程方式来终止/重启服务器程序,可能导致刚好代码执行到一半终止。

这种情况下会产生数据的不一致。如交易系统中,支付逻辑的下一段是发货,假设在支付逻辑之后进程被终止了。会导致用户支付了货币,但并没有发货,后果非常严重。

Swoole提供了柔性终止/重启的机制,管理员只需要向Server发送特定的信号,Server的Worker进程可以安全的结束。

1、SIGTERM: 向主进程/管理进程发送此信号服务器将安全终止

2、在PHP代码中可以调用$serv->shutdown()完成此操作

3、SIGUSR1: 向主进程/管理进程发送SIGUSR1信号,将平稳地restart所有Worker进程

4、在PHP代码中可以调用$serv->reload()完成此操作

5、reload有保护机制,当一次reload正在进行时,收到新的重启信号会丢弃

6、如果设置了user/group,Worker进程可能没有权限向master进程发送信息,这种情况下必须使用root账户,在shell中执行kill指令进行重启

7、reload指令对addProcess添加的用户进程无效

推荐学习:swoole视频教程

下载本文
显示全文
专题