首頁 >php框架 >Swoole >swoole怎麼退出

swoole怎麼退出

尚
原創
2020-01-13 14:42:352915瀏覽

swoole怎麼退出

Server->stop

#使目前Worker進程停止運行,並立即觸發onWorkerStop回呼函數。

function Server->stop(int $worker_id = -1, bool $waitEvent = false);

使用此函數取代exit/die結束Worker進程的生命週期

$waitEvent可以控制退出策略,預設為false表示立即退出,設定為true表示等待事件循環為空時再退出

如果要結束其他Worker進程,可以在stop裡面加上worker_id作為參數或使用swoole_process::kill($worker_pid)

此方法在1.8.2或更高版本可用

$waitEvent在1.9.19或更高版本可用

異步退出

##異步伺服器在呼叫stop退出進程時,可能仍有事件在等待。例如使用了Swoole\MySQL->query,發送了SQL語句,但還在等待MySQL伺服器回傳結果。這時如果行程強制退出,SQL的執行結果就會遺失了。

設定$waitEvent = true後,底層會使用非同步安全性重新啟動策略。先通知Manager進程,重新啟動一個新的Worker來處理新的請求。目前舊的Worker會等待事件,直到事件循環為空或超過max_wait_time後,退出進程,最大限度的保證非同步事件的安全性。

推薦學習: 

swoole教學#

以上是swoole怎麼退出的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn