亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

希望增加一個得到onRequest的協程ID,這樣方便開發助手函數。

希望增加一個得到onRequest的協程ID,這樣方便開發助手函數。

PHP
明月笑刀無情 2019-03-14 22:04:26
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();
查看完整描述

2 回答

?
不負相思意

TA貢獻1777條經驗 獲得超10個贊

這個功能有的 
SwooleCoroutine::getuid(); 返當前協程id

查看完整回答
反對 回復 2019-03-14
?
素胚勾勒不出你

TA貢獻1827條經驗 獲得超9個贊

如果在一個函數中(不是類的方法)調用getuid(), 這個函數如果是在子協程中調用的話, 得到的ID 就不是onrequest的協程ID。 當然如果自己計算好 通過得到父協程ID 也是有辦法的。但是程序代碼多了。就容易出錯。

查看完整回答
反對 回復 2019-03-14
  • 2 回答
  • 0 關注
  • 565 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號