processTimeoutHandler

    设置超时处理函数,即当发生超时事件时执行的回调函数,默认值为Workerman\\Worker::log,即记录日志到GatewayWorker/workerman.log(可以设置Worker::$logFile更改日志文件)

    注意:

    1、需要GatewayWorker版本>=2.0.2,如何查看版本号参考《常见问题》一章

    $trace_str

    字符串类型,内容是超时的调用栈。

    $exception

    如果返回true,则继续执行业务代码,结果是很可能永久卡在那里。

    如果返回假(包括无返回),则执行进程重启。

    由于BusinessWorker::$processTimeoutHandler默认回调Workerman\\Worker::log的返回值为null,所以业务超时后默认执行进程重启操作。

    1. use \Workerman\Worker;
    2. use \GatewayWorker\BusinessWorker;
    3. $worker = new BusinessWorker();
    4. $worker->count = 4;
    5. $worker->registerAddress = '127.0.0.1:1236';
    6. // 设置业务超时时间10秒
    7. $worker->processTimeout = 10;
    8. // 业务超时回调,可以把超时日志保存到自己想要的地方
    9. $worker->processTimeoutHandler = function($trace_str, $exeption)
    10. // 返回假,让进程重启,避免进程继续无限阻塞
    11. return false;
    12. };
    13. if(!defined('GLOBAL_START'))
    14. {
    15. Worker::runAll();
    16. }