在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項目做出貢獻的方法,包括報告錯誤,提交功能,編碼和改進文檔。它討論了初學者開始貢獻的必要技能和步驟,以及如何找到緊迫的是

本文討論了在PHP中使用Swoole的異步I/O功能用於高性能應用程序。它涵蓋安裝,服務器設置和優化策略。單詞計數:159

Swoole的反應堆模型使用事件驅動的,非阻滯I/O架構來有效地管理高持續性場景,通過各種技術優化性能。(159個字符)(159個字符)

摘要:本文討論了通過識別,隔離和固定解決SWOORE應用程序中的內存洩漏,並強調了常見原因,例如不當資源管理和不受管理的Coroutines。 Swoole Tracker和Valgrind等工具


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

DVWA
Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中

Atom編輯器mac版下載
最受歡迎的的開源編輯器

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

SublimeText3 英文版
推薦:為Win版本,支援程式碼提示!

ZendStudio 13.5.1 Mac
強大的PHP整合開發環境