swoole事件如何用

swoole事件如何用

swooleServer是事件驅動模式,所有的業務邏輯代碼必須寫在事件回調函數中。當特定的網絡事件發生后,底層會主動回調指定的PHP函數。共支持13種事件。? ? ? ? ? ? ? ? ? ? ? ?(推薦學習: swoole視頻教程

事件執行順序

所有事件回調均在$server->start后發生

服務器關閉程序終止時最后一次事件是onShutdown

服務器啟動成功后,onStart/onManagerStart/onWorkerStart會在不同的進程內并發執行

onReceive/onConnect/onClose在Worker進程中觸發

Worker/Task進程啟動/結束時會分別調用一次onWorkerStart/onWorkerStop

onTask事件僅在task進程中發生

onFinish事件僅在worker進程中發生

onStart/onManagerStart/onWorkerStart 3個事件的執行順序是不確定的

協程模式

Swoole2/4版本支持了協程,使用協程后事件回調函數將會并發地執行。協程是一種用戶態線程實現,沒有額外的調度消耗,僅占用內存。

使用協程模式,可以理解為“每次事件回調函數都會創建一個新的線程去執行,事件回調函數執行完成后,線程退出”。

如果希望關閉協程,可設置:

$server->set(["enable_coroutine"?=>?false,?]);

? 版權聲明
THE END
喜歡就支持一下吧
點贊9 分享