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

請(qǐng)教,關(guān)于 webman,使用異步任務(wù)的問題

evilk

webman version = 1.2.7
workerman version = 4.0.30
PHP version = 7.4.26

描述:
1.
其他應(yīng)用調(diào)用 webman 控制器接口,比如 /api/customer/register

2.
控制器接口中,類似于這樣

$taskConnection = new AsyncTcpConnection('Text://127.0.0.1:' . self::$taskPort);

        // 發(fā)送數(shù)據(jù)
        $taskConnection->send(json_encode($taskData));

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

        $taskConnection->connect();

3.
開啟N個(gè)task進(jìn)程,監(jiān)聽對(duì)應(yīng)的地址
task進(jìn)程中,在 onMessage中處理任務(wù),處理完任務(wù)后,會(huì) close connection

疑問:
1.
webman,每接受到一個(gè)請(qǐng)求,在這個(gè)接口中,就new 一個(gè)AsyncTcpConnection,如果請(qǐng)求量非常大,會(huì)有什么隱患或者影響嗎?

2.
如果請(qǐng)求量很大,task進(jìn)程消費(fèi)不過來了,請(qǐng)求是不是會(huì)在task進(jìn)程中排隊(duì)
比如,開了5個(gè)task進(jìn)程,有10個(gè)請(qǐng)求進(jìn)來了,每個(gè)task處理請(qǐng)求需要5秒,第6個(gè)請(qǐng)求,是不是會(huì)在task進(jìn)程中排隊(duì)等候被處理?

3.
如果請(qǐng)求量很大,會(huì)不會(huì)造成任務(wù)丟失的情況?
比如,鏈接斷開了,當(dāng)前這個(gè)任務(wù)就不在了

4.
如何防止任務(wù)丟失的情況
如何做補(bǔ)償性的處理?
給一個(gè)思路也可以
目前在做使用這個(gè)異步任務(wù),擔(dān)心任務(wù)丟棄了,就找不到了

2935 2 0
2個(gè)回答

nitron

對(duì)健壯性要求高的異步任務(wù)建議使用正兒八經(jīng)的消息隊(duì)列

  • evilk 2022-03-23

    好的,謝謝

  • nitron 2022-03-23

    再插一句,要RabbitMQ這種正兒八經(jīng)的

  • evilk 2022-03-23

    用RabbitMQ,會(huì)增加項(xiàng)目復(fù)雜度嗎,redis,項(xiàng)目本身用來做緩存的,所以想著直接用redis做隊(duì)列
    目前是這樣的
    通過task進(jìn)程執(zhí)行異步任務(wù),如果在task進(jìn)程處理異步任務(wù)時(shí),失敗了,在catch中,又再push到隊(duì)列中,再消費(fèi)處理一次
    不知道這樣的思路,是否可行

  • nitron 2022-03-23

    主要是redis無法確保3和4

walkor 打賞

1、如果服務(wù)器負(fù)載過高,或者ESTABLISHED連接消耗光本地端口,都可能會(huì)連接失敗。
2、會(huì)排隊(duì)
3、連接斷開可能會(huì)導(dǎo)致數(shù)據(jù)丟失
4、直接用消息隊(duì)列

  • 暫無評(píng)論
年代過于久遠(yuǎn),無法發(fā)表回答
??