关于PHP这方面的知识 可以看 https://www.cnblogs.com/zyf-zhaoyafei/p/6928149.html 进行补课
然后下面记录一下使用swoole的时候需要注意的地方
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
在官方文档中 https://wiki.swoole.com/wiki/page/501.html
在swoole程序中禁止使用exit/die,如果PHP代码中有exit/die
,当前工作的Worker进程、Task进程、User进程、以及swoole_process
进程会立即退出。
建议使用try/catch
的方式替换exit/die
,实现中断执行跳出PHP
函数调用栈。
function swoole_exit($msg)
{
//php-fpm的环境
if (ENV=='php')
{
exit($msg);
}
//swoole的环境
else
{
throw new SwooleExitException($msg);
}
}
以上代码并未实现
ENV
常量和SwooleExitException
,请自行实现
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
然后说一下异常捕获 https://wiki.swoole.com/wiki/page/498.html
PHP
代码中如果有异常抛出,必须在回调函数中进行try/catch
捕获异常,否则会导致工作进程退出- 不支持
set_exception_handler
,必须使用try/catch
方式处理异常
可通过register_shutdown_function
来捕获致命错误,在进程异常退出时做一些清理工作
例子 https://wiki.swoole.com/wiki/page/305.html
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
于是啰嗦了一大堆,其实需要注意的就是不要用 exit 函数,try的方式来处理异常,全局异常捕获不能用,再实现一个register_shutdown_function 把错误也捕获了
避免运行的时候出现什么奇怪的问题,导致服务进程中止,同时也可以记录详细的日志。