旗下导航:搜·么
当前位置:网站首页 > PHP框架 > Swoole > 正文

swoole怎样重启【swoole】,swoole

作者:搜搜PHP网发布时间:2019-12-08分类:Swoole浏览:60


导读:在swoole中,我们能够向主历程发送种种差别的信号,主历程依据接收到的信号范例做出差别的处置惩罚。比方下面这几个(引荐进修:swoole视频教程)1、kill...

在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怎样重启的细致内容,更多请关注ki4网别的相干文章!

标签:swoole