🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
# 官方文档 https://www.workerman.net/doc/gateway-worker/business-worker.html # 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关闭的回调函数,一般在这个回调里面做数据清理或者保存数据工作 ## 6、eventHandler 设置使用哪个类来处理业务,默认值是`Events`,即默认使用Events.php中的Events类来处理业务。业务类至少要实现onMessage静态方法,onConnect和onClose静态方法可以不用实现。 ~~~ <?php require_once 'vendor/autoload.php'; use Workerman\Worker; use GatewayWorker\BusinessWorker; $business = new BusinessWorker(); $business->name='business'; $business->count=2; $business->registerAddress='127.0.0.1:6666'; //$business->eventHandler='Events'; $business->onWorkerStart=function (){ echo 'business start'."\n"; }; $business->onWorkerStop=function (){ echo 'business stop'."\n"; }; Worker::runAll(); ~~~