您的位置:首页 >> Workerman >> 和屌丝一起学Workerman—BusinessWorker类的使用方法

和屌丝一起学Workerman—BusinessWorker类的使用方法

[ 孤狼 | 2020-05-10 15:39:42 | Workerman | 2984°C | 0条评论 ]

BusinessWorker类的使用

BusinessWorker类其实也是基于基础的Worker开发的。BusinessWorker是运行业务逻辑的进程,BusinessWorker收到Gateway转发来的事件及请求时会默认调用Events.php中的onConnect onMessage onClose方法处理事件及数据,开发者正是通过实现这些回调控制业务及流程。


BusinessWorker类可以定制的内容

1、name

和Worker一样,可以设置BusinessWorker进程的名称,方便status命令中查看统计

2、count

和Worker一样,可以设置BusinessWorker进程的数量,以便充分利用多cpu资源

3、registerAddress,注册服务地址,只写格式类似于 '127.0.0.1:1236'

4、onWorkerStart

和Worker一样,可以设置BusinessWorker启动后的回调函数,一般在这个回调里面初始化一些全局数据

5、onWorkerStop

和Worker一样,可以设置BusinessWorker关闭的回调函数,一般在这个回调里面做数据清理或者保存数据工作


业务处理类 Events

Events类为业务处理的入口文件,当有客户端事件发生时会触发相应的回调如下: (注意:Gateway 2.0.4版本以前业务处理类为Event,为了避免和Event扩展冲突,2.0.4版本以后统一改成Events类)

1、每个BusinessWorker进程启动时,都会触发Events::onWorkerStart($businessworker)回调(此特性Gateway版本>=2.0.4才支持)。

2、当客户端连接到Gateway时,会触发Events::onConnect($client_id)回调。

3、当客户端发来数据时,会触发Events::onMessage($client_id, $data)回调。

4、当客户端关闭时,会触发Events::onClose($client_id)回调。

5、每个BusinessWorker进程退出时,都会触发Events::onWorkerStop($businessworker)回调(此特性Gateway版本>=2.0.4才支持)。注意如果进程是非正常退出,例如被kill可能无法触发onWorkerStop。



属性及回调


eventHandler

callback BusinessWorker::$eventHandler

(注意:此特性需要GatewayWorker版本>=2.0.2 | 此属性一般不用设置))

设置使用哪个类来处理业务,默认值是Events,即默认使用Events.php中的Events类来处理业务。业务类至少要实现onMessage静态方法,onConnect和onClose静态方法可以不用实现。


processTimeout

int BusinessWorker::$processTimeout

(需要GatewayWorker版本>=2.0.2)

设置监控服务端业务超时时间(单位秒)。不设置默认是30秒,设置为0表示不监控。

此属性用于监控Events::onConnect Events::onMessage Events::onClose的执行时间,单次执行时间如果超过BusinessWorker::$processTimeout设定的值,则记录一条日志到workerman.log,日志中包含超时的调用栈,这对于排查业务长时间阻塞以及死循环等问题非常有帮助。

注意:

1、需要GatewayWorker版本>=2.0.2

2、不支持windows系统

3、此属性需要在Events.php文件头部设置一条语句declare(ticks=1);才能生效


processTimeoutHandler

callback BusinessWorker::$processTimeoutHandler

(需要GatewayWorker版本>=2.0.2)

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

注意:

1、需要GatewayWorker版本>=2.0.2

2、不支持windows系统


转载请注明出处:http://gl.paea.cn/n.php?n=127
 
如您看得高兴,欢迎随意投喂,让我们坚持创作!
赞赏一个鸡腿
还没有人留下遗迹
综合 · 搜索