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

webman - 處理任務(wù)

evilk

在webman中,處理任務(wù),分兩種情況
1.不需要得到任務(wù)結(jié)果的
這種情況,可以用隊(duì)列去處理,客戶端執(zhí)行扔進(jìn)隊(duì)列操作后,會(huì)立即返回,不會(huì)阻塞業(yè)務(wù)進(jìn)程

2.需要得到任務(wù)結(jié)果的
這種情況,參考自定義進(jìn)程處理,如果任務(wù)耗時(shí)較長(zhǎng),此時(shí)會(huì)阻塞業(yè)務(wù)進(jìn)程

參考過 在workerman中異步任務(wù),但文檔中,是在workerman中調(diào)用的(worker/onMessage中使用)

嘗試在webman/controller/action中

public function task()
    {
        // 與遠(yuǎn)程task服務(wù)建立異步連接,ip為遠(yuǎn)程task服務(wù)的ip,如果是本機(jī)就是127.0.0.1,如果是集群就是lvs的ip
        $task_connection = new AsyncTcpConnection('tcp://127.0.0.1:8889');
        // 任務(wù)及參數(shù)數(shù)據(jù)
        $request = [
            'class'   => 'app\service\User',
            'method'  => 'get',
            'args'    => [100], // 100 是 $uid
        ];
        // 發(fā)送數(shù)據(jù)
        $task_connection->send(json_encode($request));

        // 異步獲得結(jié)果
        $task_connection->onMessage = function($task_connection, $task_result)
        {
            // 結(jié)果
            var_dump($task_result);
            // 獲得結(jié)果后記得關(guān)閉異步連接
            $task_connection->close();
//            // 通知對(duì)應(yīng)的websocket客戶端任務(wù)完成
//            $ws_connection->send('task complete');
        };
        // 執(zhí)行異步連接
        $task_connection->connect();
    }

無法得到$task_result結(jié)果,看不到打印的結(jié)果

1.如果在一次http請(qǐng)求中,需要執(zhí)行一個(gè)繁重任務(wù),耗時(shí)10秒
2.在業(yè)務(wù)進(jìn)程中,將此任務(wù)扔給任務(wù)進(jìn)程處理
3.需要得到任務(wù)處理結(jié)果
4.不阻塞業(yè)務(wù)進(jìn)程(處理此次http請(qǐng)求的進(jìn)程)

在webman中,應(yīng)該如何操作?

4200 0 1
0個(gè)回答

年代過于久遠(yuǎn),無法發(fā)表回答
??