在swoole中,我们可以向主进程发送各种不同的信号,主进程根据接收到的信号类型做出不同的处理。

比如下面这几个 (推荐学习:swoole视频教程)1、kill -SIGTERM|-15 master_pid 终止Swoole程序,一种优雅的终止信号,会待进程执行完当前程序之后中断,而不是直接干掉进程

2、kill -USR1|-10 master_pid 重启所有的Worker进程

3、kill -USR2|-12 master_pid 重启所有的Task Worker进程

当USR1信号被发送给Master进程后,Master进程会将同样的信号通过Manager进程转发Worker进程,收到此信号的Worker进程会在处理完正在执行的逻辑之后,释放进程内存,关闭自己,然后由Manager进程重启一个新的Worker进程。

新的Worker进程会占用新的内存空间。

场景:

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

这种情况下会产生数据的不一致。

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

swoole为我们提供了平滑重启机制,我们只需要向swoole_server的主进程发送特定的信号,即可完成对server的重启。

注意事项:

1、更新仅仅只是针对worker进程,在worker 进程当中include 也就是写在master进程跟manger进程当中更新代码并不生效,也就是说只有在onWorkerStart回调之后加载的文件,重启才有意义。

在Worker进程启动之前就已经加载到内存中的文件,如果想让它重新生效,只能关闭server再重启。

2、直接写在worker代码当中的逻辑是不会生效的,就算发送了信号也不会,需要通过include方式引入相关的业务逻辑代码才会生效

swoole的PHP热重启,swoole如何重启相关推荐

  1. php7.1解压包安装,【Swoole】php7.1安装swoole扩展

    参照:https://zixuephp.net/article-430.html 1.源码编译安装,PHP版本7.1.33 2.在已经编译好安装的php7.1中安装swoole扩展. 一.下载swoo ...

  2. swoole学习(一)----linux安装swoole

    1.下载swoole 登录swoole官网 https://www.swoole.com/ 点击下载,找到github或者其他链接下载下来 放到虚拟机上. 也可以使用虚拟机下载 2.登录虚拟机 推荐使 ...

  3. php7 swoole 扩展,PHP7.2加入swoole扩展

    首先找到phpize的位置,一般在安装目录的bin目录中 在swoole文件夹中执行phpize season@ubuntu:~/Downloads/swoole$ /usr/local/php/bi ...

  4. 共享服务器不能远程重启,彻底解决服务器重启失败或重启缓慢无法远程的问题...

    服务器在日常管理中,由于某种原因导致运行缓慢,或者是服务器在安装了某些软件后,需要执行重启来完成安装.重启服务器也是服务器日常维护中,所占比例最大的,但是,由于独立服务器不像VPS或云服务器一样,提供 ...

  5. 软重启、硬重启、重启、重置概念介绍

    转自:微点阅读  https://www.weidianyuedu.com 如果你使用的是Windows电脑,甚至是手机,我相信你已经听说过所有这些术语.虽然它们听起来很相似,但是它们之间还是有区别的 ...

  6. iphone快捷指令一键重启_一键重启捷径怎么设置 一键重启捷径设置教程

    一键重启捷径怎么设置?相信很多小伙伴都还不是很清楚吧,下面小编就为大家带来一键重启捷径设置教程.感兴趣的小伙伴们随小编一起来看看吧,希望对大家能有所帮助. 那么一键重启捷径怎么制作呢?接下来看看IT数 ...

  7. 安装VMware15提示重启电脑,重启后又还是提示重启电脑

    安装VMware15一直提示重启电脑,重启了N次,解决办法 解决办法:Windows+R快捷键打开注册表regedit 删除注册表内[HKEY_LOCAL_MACHINE\SYSTEM\Current ...

  8. oracle12数据库重启命令,linux重启oracle数据库命令

    Linux中可以通过相关命令重启oracle数据库,下面由学习啦小编为大家整理了linux重启oracle数据库命令和方法的相关知识,希望对大家有帮助! linux重启oracle数据库命令和方法1 ...

  9. iphone快捷指令一键重启_iPhoneX如何一键重启 iPhoneX一键重启方法介绍【图文】

    iPhoneX如何一键重启?相信小伙伴们一定很好奇,下面小编为大家带来了iPhoneX一键重启方法介绍,感兴趣的小伙伴赶紧跟着小编一起来看看吧. iPhone X怎么一键重启?iPhone X重启键在 ...

  10. python 重启程序_python重启程序

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! # 重启程序 def restart_program():print(重启... ...

最新文章

  1. fields在php中,phpmysqli_num_fields函数怎么用
  2. windows 下 logstash 安装启动
  3. PowerDesigner 15.1 安装步骤详细图解及破解
  4. [Xcode 实际操作]五、使用表格-(11)调整UITableView的单元格顺序
  5. c语言 期末,c语言期末 求助
  6. java 文件上传终止_java文件上传
  7. 移动平均法(Moving average,MA) 指数平滑法(Exponential Smoothing,ES)
  8. 痞子衡嵌入式:恩智浦i.MX RT1xxx系列MCU启动那些事(8)- 从Raw NAND启动
  9. 计算机打开资源管理器停止工作,windows资源管理器已停止工作,教您windows资源管理器已停止工作怎么解决...
  10. python中match用法_Python3.9.1中使用match方法详解
  11. 如何在Foobar2000中使用iPod
  12. msdn突然无法使用,打开的页面无法正常显示。
  13. Spring AOP报错Set ‘exposeProxy‘ property on Advised to ‘true‘ to make it available问题
  14. javascript中mouseover和mouseout事件详解
  15. 信息系统基础知识---信息系统工程
  16. 解决双击tomcat startup.bat的弹框一闪而过的问题,以及如何配置 jre_home 和 java_home
  17. IE浏览器低版本判断及升级提示
  18. 【工业智能】知识进化论:卓越运营是如何拥抱工业智能,如虎添翼的?
  19. [Git Rebase] Git Rebase 合并提交(命令操作 SourceTree 操作)
  20. 国足晋级12强 | 爬取《NBA30支球队》“现役球员信息”,再来看看篮球吧!

热门文章

  1. 平面设计中如何进行图形创意设计?
  2. 根文件系统rootfs制作——使用buildroot工具(重制版)
  3. python - 第三方库下载itchat模块
  4. getattr 函数详讲
  5. C++Qt开发——音视频播放
  6. makefile之.PHONY
  7. c++模板专题 - Deduced Context
  8. 超分辨率重建之SRCNN整理总结
  9. 天源:Sibros与NXP合作 为下一代联网汽车推出深度OTA平台
  10. python通过鼠标键盘监听自动桌面截图调用百度文字识别工具