zoukankan      html  css  js  c++  java
  • 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 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 把错误也捕获了

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

  • 相关阅读:
    iOS -Swift 3.0 -for(循环语句用法)
    C++ 中的std::vector介绍(转)
    C++ 中的sort排序用法
    iOS获取当前AppStore版本号与更新
    cocos2dx 3.x(获得父类的node型指针调用父类函数this->getParent())
    cocos2dx 3.x(TexturePacker进行图片加密)
    cocos2dx 3.x(屏幕截图的两种方法)
    cocos2dx 3.x(在Mac平台下利用Eclipse打包安卓apk安装包详细教程)
    cocos2dx 3.x(定时器或延时动作自动调用button的点击响应事件)实现自动内测
    cocos2dx 3.x(移动修改精灵坐标MoveTo与MoveBy)
  • 原文地址:https://www.cnblogs.com/toumingbai/p/8743878.html
Copyright © 2011-2022 走看看