国产+高潮+在线,国产 av 仑乱内谢,www国产亚洲精品久久,51国产偷自视频区视频,成人午夜精品网站在线观看

有繁重任務(wù)時,GateWay里面使用異步鏈接AsyncTcpConnection

jbking

參考了其他人的解決方案,按如下來做:

在Gateway的Application下新增了一個Worker來處理繁重任務(wù)(要調(diào)外部的http接口)

>  $task_worker = new Worker('Text://127.0.0.1:13000');
> $task_worker->count = 10;
> $task_worker->name = 'TaskWorker';
> $task_worker->onMessage = function($connection, $task_data)
> {  
>     $task_data = json_decode($task_data, true);
>     $rs = Transfer::start($task_data, $task_data);
>     $connection->send(json_encode($rs));
> };

然后,在Event里處理發(fā)過來的請求消息,發(fā)給上面的Worker異步處理

>                  $task_connection = new AsyncTcpConnection('Text://127.0.0.1:13000');
>                 $task_data = array(
>                     'func'     => $req_data,
>                     'data'     => $req_data
>                 );

>                 $task_connection->send(json_encode($task_data));
>                 $task_connection->onMessage = function($task_connection, $task_result)use($client_id)
>                 {
>                     Gateway::sendToClient($client_id, json_encode(array("flag" => "transfer", "msg" => $task_result)));
>                     $task_connection->close();
>                 };
>                 $task_connection->connect();

測試后,功能正常,不知道這樣做是否最優(yōu)?

6203 1 0
1個回答

walkor 打賞

已經(jīng)是很好的方案了

  • 暫無評論
年代過于久遠,無法發(fā)表回答
??