官方參考:
reload()
安全地重啟所有 worker/task 程序。
swoole\server
->
reload
(bool $only_reload_taskworkrer
=false
): bool
平滑重啟可呼叫reload()
方法 或者 執行kill -usr1 主程序pid
命令來重啟所有worker程序
測試**:
));// 伺服器啟動時執行一次
$server
->on(
'start'
,function
($server))
;// 伺服器啟動時執行一次
$server
->on(
'managerstart'
,function
($server))
;// 每個 worker 程序啟動或重啟時都會執行
$server
->on(
'workerstart'
,function
($server
,$workerid))
;$server
->on(
'connect'
,function
($server
,$fd
,$reactorid))
;$server
->on(
'request'
,function
($request
,$response
)use
($server
)echo
'request - worker id: '
.$server
->
worker_id
.php_eol
;// 測試reload
$test
=new
test()
;echo
$test
->
str?
?'not include file'
;$act
=$request
->
get[
'act']?
?'';if
($act
=='reload'
)$response
->
header
("content-type"
,"text/html; charset=utf-8");
$response
->
end(
"hello swoole");
});$server
->
start()
;workerstart.php
class
test
啟動服務
php reload_test.php
start
managerstart
workerstart - worker id: 0
workerstart - worker id: 1
include file: workstart
include file: workstart
可以看到輸出兩行include file: workstart
, 因為worker_num
設定為2, 有2個worker
程序
此時開啟瀏覽器, 訪問
connect - worker id: 0 , fd: 1 , reactorid: 0
request - worker id: 0
include file: workstart.php
然後修改workerstart.php
檔案中變數$str
為include file: test.php
, 再次訪問
依舊輸出include file: workstart.php
connect - worker id: 0 , fd: 2 , reactorid: 0
request - worker id: 0
include file: workstart.php
訪問?act=reload
觸發**$server->reload()
或者 執行命令kill -usr1 主程序pid
, 讓程式重新include
檔案達到平滑重啟的效果
swoole reload ...
[2020-05-12 20:56:41 $131.0] info server is reloading all workers now
reload success
workerstart - worker id: 0
workerstart - worker id: 1
再次訪問
, 看到更新成功, 輸出include file: test.php
connect - worker id: 0 , fd: 4 , reactorid: 0
request - worker id: 0
include file: test.php
平滑重啟 nginx版本平滑公升級
軟體新版有了更棒的功能?當前版本有安全漏洞?架構調整,需要新版本來支援?這些場景是不是很熟悉?你可能條件反射的就說出 公升級版本啊!是的,運維人永遠無法避免的乙個工作就是軟體的版本公升級 本文舉例nginx1.13.9公升級到1.14.2版本,nginx主程序id是1533 將當前的nginx安裝目...
nginx平滑重啟與平滑公升級的方法
如何實現nginx平滑重啟與平滑公升級?平滑重啟 kill hup cat usr local www nginx logs nginx.pid 平滑公升級nginx 得到編譯引數 用上面這段編譯 然後make,千萬別make install make完了 在objs目錄下就多了個nginx,這個就...
fpm平滑重啟 詳解nginx及FPM平滑重啟
平滑重啟 gr是graceful restart 平滑重啟 的簡稱,是一種在協議重啟時保證 業務不中斷的機制。gr機制的核心在於 當某裝置進行協議重啟時,能夠通知其周邊裝置在一定時間內將到該裝置的鄰居關係和路由保持穩定。在協議重啟完畢後,周邊裝置協助其進行資訊 包括支援gr的路由 mpls相關協議所...