希望增加一个得到onRequest的协程ID,这样方便开发助手函数。

PHP的其他框架都是一个进程处理一个请求。所以有很多简短的全局助手函数。比如db model input等等。
但是SWOOLE 一个请求是在一个协程内完成的,就不太好实现 助手函数。 希望能增加一个得到onrequest的协程ID。
这样就可以实现助手函数。

$staticReqs=array();function getRequestID(){    return co::getCid(); //这里希望有新的函数}function model(){    global staticReqs;
    $db=$staticReqs[getRequestID()];
    $db->query(...);
    
}
$server = new Swoole\Http\Server('127.0.0.1', 9501, SWOOLE_BASE);

协程开始#1$server->on('Request', function($request, $response) {
   $db=new Swoole\Coroutine\MySQL();
   $db->connect.....
   staticReqs[getRequestID()]=$db;   //业务
   //处理,如果里面还有go协程的话getCid()就有得不到Request的协程ID,
    //直接调用 函数不传参数model()
   unset(staticReqs[getRequestID()]); 
});

$server->start();


明月笑刀无情
浏览 553回答 2
2回答

不负相思意

这个功能有的 SwooleCoroutine::getuid(); 返当前协程id

素胚勾勒不出你

如果在一个函数中(不是类的方法)调用getuid(), 这个函数如果是在子协程中调用的话, 得到的ID 就不是onrequest的协程ID。 当然如果自己计算好 通过得到父协程ID 也是有办法的。但是程序代码多了。就容易出错。
打开App,查看更多内容
随时随地看视频慕课网APP