gatewayWorker使用疑问

qq330397652

问题描述

给各位吴彦祖们问好
我这里想启用一个单独的businessWorker进程用来处理定时任务和一些费时的异步操作,我想通过client_id获取玩家session数据,但是又不想gateway进程转发玩家请求到这个businessWorker进程中来,可以这么操作

187 1 0
1个回答

写一个start_task.php

<?php
use Workerman\Worker;
use GatewayWorker\Lib\Gateway;

require_once __DIR__ . '/../../vendor/autoload.php';

$worker = new Worker();
// worker名称
$worker->name = 'task';
// bussinessWorker进程数量
$worker->count = 1;
$worker->onWorkerStart = function(){
    // 全局设置一次即可,端口为 start_register.php里的端口
    Gateway::$registerAddress = '127.0.0.1:实际端口';
    $session = Gateway::getSession($client_id);
};

// 如果不是在根目录启动,则运行runAll方法
if(!defined('GLOBAL_START'))
{
    Worker::runAll();
}
  • qq330397652 6天前

    这样的话,我测试了gateway依然会把请求转发到这个task进程中来,那如果我的定时任务时间过长,不是会堵塞玩家的请求吗?

  • walkor 6天前

    gateway不会转发请求到task进程

  • qq330397652 6天前

    是的,你是对的,我测试的时候只是reload,现在我stop后再重启,就不转发了,谢谢

🔝