swoole中退出、异常与错误的处理笔记

关于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 Swoole\ExitException($msg); } } 

以上代码并未实现ENV常量和Swoole\ExitException,请自行实现

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

然后说一下异常捕获 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 把错误也捕获了

避免运行的时候出现什么奇怪的问题,导致服务进程中止,同时也可以记录详细的日志。

转载于:https://www.cnblogs.com/toumingbai/p/8743878.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值