關於PHP這方面的知識 能夠看 https://www.cnblogs.com/zyf-zhaoyafei/p/6928149.html 進行補課php
而後下面記錄一下使用swoole的時候須要注意的地方html
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------swoole
在官方文檔中 https://wiki.swoole.com/wiki/page/501.html函數
在swoole程序中禁止使用exit/die,若是PHP代碼中有exit/die
,當前工做的Worker進程、Task進程、User進程、以及swoole_process
進程會當即退出。php-fpm
建議使用try/catch
的方式替換exit/die
,實現中斷執行跳出PHP
函數調用棧。spa
function swoole_exit($msg) { //php-fpm的環境 if (ENV=='php') { exit($msg); } //swoole的環境 else { throw new Swoole\ExitException($msg); } }
以上代碼並未實現
ENV
常量和Swoole\ExitException
,請自行實現日誌
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------code
而後說一下異常捕獲 https://wiki.swoole.com/wiki/page/498.htmlhtm
PHP
代碼中若是有異常拋出,必須在回調函數中進行try/catch
捕獲異常,不然會致使工做進程退出set_exception_handler
,必須使用try/catch
方式處理異常可經過register_shutdown_function
來捕獲致命錯誤,在進程異常退出時作一些清理工做blog
例子 https://wiki.swoole.com/wiki/page/305.html
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
因而囉嗦了一大堆,其實須要注意的就是不要用 exit 函數,try的方式來處理異常,全局異常捕獲不能用,再實現一個register_shutdown_function 把錯誤也捕獲了
避免運行的時候出現什麼奇怪的問題,致使服務進程停止,同時也能夠記錄詳細的日誌。